Создание файла в папке, которая еще не существует в php

Использование другого shape вместе с настройкой stroke и переключением fill с помощью color, кажется, работает:

ggplot(data, aes(x = Date_Id, 
                 y = Level.Of.Difficulty, size = Savings), show.legend = F) +
  geom_point(aes(fill = Source, alpha = 0.6), shape = 21, color = "red", stroke = 1.25) +
  geom_text(aes(label = Initiative), size = 4) +
  scale_size_continuous(range = c(1, 75)) +
  scale_y_discrete(limits = c("Low", "", "", "", "", "", "", "", "", "High")) +
  scale_x_discrete(limits = c("","","Sep-18","","","","","","",
                              "Oct-18", "","","","","","",
                              "Nov-18", "","","","","","",
                              "Dec-18", "","","","","","",
                              "Jan-19", "","","","","","",
                              "Feb-19", "","","","","","",
                              "Mar-19", "","","","","","",
                              "Apr-19", "","","","","","",
                              "May-19", "","","","","","",
                              "Jun-19", "","","","","","", "Jul-19")) +
  labs(x = "Date", y = "Level of Difficulty") +
  ggtitle("2019 SC Major Initiatives") + 
  scale_alpha(guide = 'none') +
  geom_vline(aes(xintercept = 33), size = 1.4) + 
  geom_hline(aes(yintercept = 5.5), size = 1.4,
             linetype = 6) +
  scale_fill_manual(values = c("#008000", "#0000FF")) +
  theme(plot.title = element_text(hjust = 0.5),
        legend.position = c(0.035, 0.035), 
        legend.background = element_blank(),
        legend.title = element_blank(),
        legend.text = element_text(size = 12),
        panel.background = element_blank(),
        axis.line = element_line(color = "black")) +
  guides(size = F)

enter image description here [ 118]

22
задан Ryan Gates 14 July 2014 в 17:10
поделиться

4 ответа

С

$directories = explode( '/', $path );

можно разделить путь для получения единственных имен каталогов. Затем пройдите массив и создайте каталоги, устанавливающие chmod 777. (У пользователя системы, который выполняет php, должна быть способность сделать это.)

$file = array_pop( $directories );
$base = '/my/base/dir';

foreach( $directories as $dir )
{

   $path = sprintf( '%s/%s', $base, $dir )
   mkdir( $path ); 
   chmod( $path, 777 );
   $base = $path;

}

// file_put_contents or something similar
file_put_contents( sprintf( '%s/%s', $base, $file ), $data );

Проблема здесь состоит в том, что Вы не могли бы установить chmod из своего сценария PHP.

Альтернатива могла быть должна использовать FTP. Пользователь передает данные входа в систему FTP сценарию, и это использует функциональность FTP для управления файлами.

http://www.php.net/FTP

5
ответ дан 29 November 2019 в 03:32
поделиться
if(!file_exists(dirname($file)))
    mkdir(dirname($file), 0777, true);
//do stuff with $file.

Используйте третий параметр для mkdir (), который заставляет его создать каталоги рекурсивно.

67
ответ дан 29 November 2019 в 03:32
поделиться

Вы не можете только сделать этого путем создания dir с mkdir (http://nl.php.net/manual/en/function.mkdir.php) затем chmod это 777 (http://nl.php.net/manual/en/function.chmod.php) каталог изменения с chdir (http://nl.php.net/manual/en/function.chdir.php) и затем создать файл (касание)?

0
ответ дан 29 November 2019 в 03:32
поделиться

Создайте любые недостающие папки с помощью mkdir (), затем создайте пустой файл с помощью касания ().

Можно использовать полные пути в обоих случаях, имея в виду:

mkdir('data');
mkdir('data/newfolder');
mkdir('data/newfolder/10302008');
touch('data/newfolder/10302008/log_for_Today.txt');

если Вам будет любопытно на предмет того, где это - отправная точка, это будет, можно использовать getcwd (), чтобы сказать Вам рабочий каталог.

1
ответ дан 29 November 2019 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: