Что не так с этим PHP-скриптом?

#php #date #mkdir

#php #Дата #мкдир #mkdir

Вопрос:

Следующий скрипт не выполняется:

 <?php

    $year = date(Y);
    $month = date(M);
    $dirloc = "/images/".$year."/".$month;
    mkdir($dirloc, 0700);

?>
  

Почему?

Спасибо

Комментарии:

1. У вас есть разрешения на создание нового каталога?

2. У вас есть какая-нибудь ошибка?

Ответ №1:

Указанный вами путь является абсолютным, и у вас, вероятно, нет прав на создание там каталогов или файлов. Если вы хотите создать каталог в текущем рабочем каталоге (из которого вы запускаете скрипт), попробуйте

 $dirloc = "images/".$year."/".$month;
  

Также кажется, что вы хотите создать более одной папки. Если родительская папка не существует, mkdir произойдет сбой, если вы не разрешите ей рекурсивно создавать родительские папки.

 mkdir($dirloc, 0700, true);
                  // = recursive
  

Ответ №2:

Вы забыли кавычки:

 <?php

$year = date("Y");
$month = date("M");
$dirloc = "/images/".$year."/".$month;
mkdir($dirloc, 0700);

?>
  

Комментарии:

1. Это не должно вызывать ошибку, потому что каждая неопределенная константа обрабатывается как строка.

2. @PENDO: просто включите E_NOTICE 😉 PHP Notice: Use of undefined constant A - assumed 'A' (для еще лучшей разработки E_ALL | E_STRICT . Это просто все.)

Ответ №3:

Используйте кавычки для функции date():

 $year = date("Y");
$month = date("M");