ошибка file_put_contents не дает прав на запись

#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. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества, и с большей вероятностью получат положительные отзывы.