Почему file_put_contents отказываются работать для следующего кода?
$f = file_put_contents("files/r.js", "Some text here"); if ($f) print 1; else print 0;
Является ли каталог /files
chmoded 777? иногда php не позволит вам получить доступ к каталогам, если у них недостаточно прав. Однако я не знаю о пустых ошибках.
Попытайтесь проверить, есть ли у него достаточно разрешений, а если нет, то установите его на 777 и попробуйте.
Вы используете полный путь в файловой системе или пытаетесь использовать URI? Я думаю, что эта функция PHP ожидает, что вы укажете путь, поскольку файл найден в файловой системе.
Однако относительные пути должны быть в порядке.
Возможно, вам необходимо убедиться, что файл существует и что его разрешения установлены на 777. Иногда я обнаружил, что недостаточно просто установить права доступа к каталогу на 777, но файл также должен существовать.
Мы испытали это, требуя обходного пути (независимо от метода, разрешений и всего остального, упомянутого здесь). Когда все остальные исправления не удались, мы обнаружили, что он может быть связан с ограничениями, созданными SELinux.
Если вы используете окна, следующее решение отлично работает для меня в Windows 10 под управлением php 5.5.38
Если у вас возникла эта проблема в Windows / IIS, попробуйте следующее:
1 Перейдите в папку, которую вы пытаетесь записать, и щелкните ее правой кнопкой мыши, затем выберите свойства. 2 Выберите вкладку «Безопасность». 3 Нажмите «Редактировать». 4 Нажмите «Добавить». 5 Нажмите «Дополнительно». 6 Нажмите «Найти сейчас». 7 В списке «Пользователь» выберите «IUSR» и нажмите «ОК». 8. Еще раз нажмите «ОК». 9 IUSR будет отображаться в верхнем окне с надписью «Группа имен пользователей». 10 Выберите IUSR и предоставите необходимые разрешения в представлении списка «Разрешения для BATCH». 11 Нажмите «Применить», а затем вы закончите.
Этапы могут быть несколько разными для разных версий окон. Это также относится к ASP.NET, хотя я думаю, что пользователи, которых вы добавляете, являются пользователями сети (пользователи NETWORK AND OR NETWORK SERVICE), а также IUSR.