Не работает создание новой папки с файлом на php, как исправить?

к примеру $b = 81b0bad3c6
тогда должна создаться в папке link папка 81b0bad3c6 с файлом text.txt у которого значение "lol"
но данная конструкция не работает, что делать?(используется php для сайта)

$b = substr(md5(time()), 0, 10);

$c = "/link/$b";
echo "$c";

$file = fopen("$c/text.txt", 'wt');

fwrite($file, "lol");

fclose($file);
  • Вопрос задан
  • 165 просмотров
Решения вопроса 2
dyuriev
@dyuriev
A posteriori
корень бед тут
$c = "/link/$b";

вы задаете путь до каталога/файла не относительно корня сайта/скрипта, а путь до файла на сервере

указывайте всегда полный путь до каталога на сервере, а не то как вы его ощущаете.

один из простых и универсальных способов - получить полный путь до каталога, в котором находится скрипт, через магическую константу __DIR__

другой способ (по моему скромному мнению правильный) - вытащить из массива с информацией о среде исполнения путь до корня сайта - $_SERVER['DOCUMENT_ROOT'] (не работает в случае php-cli, запуске скрипта через командную строку, это надо знать и помнить, когда пишете скрипты, которые запускаются из консоли через php /path/to/script.php)

Дальше уже относительно этих путей задавать путь до каталога/файла

UPD: ну и, конечно же, перед созданием файла не забываем создавать каталог, в который файл поместить хотите. mkdir(); вам в помощь

PS: не обольщайтесь, что php позволяет оперировать файлами относительно корня сервера, на нормальном сервере/хостинге, даже если у пользователя, от которого работает сайт, есть права на чтение/запись в какой то каталог за пределами сайта, то через переменную open_basedir ограничиваются возможности ваших скриптов (прописываются каталоги, выше которых ваши скрипты не имеют права сунуться)
Ответ написан
Комментировать
toxa82
@toxa82
Папки, в отличии от файлов, сами не создаются при использовании fopen(). Создавайте сами командой mkdir()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект