#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");