#php #file-put-contents
#php #file-put-contents- поместить содержимое
Вопрос:
Я использовал file_put_contents
для создания текстовых файлов внутри указанной папки, у которой есть разрешения на запись:
file_put_contents($dir.$file.'.txt', $content);
Редактируя свой код, я допустил ошибку: Я написал $dir = '/../../xxx/yyy/';
(который на самом деле не существует) вместо $dir = '../xxx/yyy/';
(правильный каталог).
Очевидно, что файл не был создан (все остальные папки доступны только для чтения), но я не получил никакого сообщения об ошибке по этому поводу.
Почему?
PS: Я получаю другие сообщения об ошибках на той же странице PHP, но не на вышеупомянутой.
Комментарии:
1. Возможно, сообщение об ошибках не включено в вашей конфигурации PHP? stackify.com/display-php-errors
2. Какие ошибки вы получаете на странице?
3. проверьте владельца каталога, если это не www-data измените его на www-data
Ответ №1:
Из документов:
«Эта функция возвращает количество байтов, которые были записаны в файл, или FALSE при сбое»
https://www.php.net/manual/en/function.file-put-contents.php
Т. е. используйте что-то вроде $result = file_put_contents($dir.$file.'.txt', $content);
И проверьте, правда это или нет
Ответ №2:
попробуйте это
$dir = '../xxx/yyy/';
$handle = fopen($dir,'w');
fwrite($dir, "write some here");
fclose($dir);
Комментарии:
1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества, и с большей вероятностью получат положительные отзывы.