Подтвердить что ты не робот

PHP fopen() Ошибка: не удалось открыть поток: разрешение отклонено

Я изучаю, как писать плагин WordPress. Мне нужна помощь в написании некоторых данных в XML файле. Я нахожусь на своей локальной машине, Mac работает с MAMP. У меня PHP 5.2.13. В моем плагине у меня есть:

$file_handle = fopen('markers.xml', 'w');
$stringdata = "Test Info";
fwrite($file_handle, $stringdata);
fclose($file_handle);

Запуск выше дает мне следующую ошибку:

Предупреждение: fopen (markers.xml) [function.fopen]: не удалось открыть поток: Разрешение отклонено в /Users/my _name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php в строке 73

Предупреждение: аргумент fwrite(): поставляемый аргумент не является допустимым ресурсом потока в /Users/my _name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php в строке 75

Предупреждение: fclose(): предоставленный аргумент не является допустимым ресурсом потока в /Users/my _name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php в строке 76

Я попытался использовать абсолютный путь в строке $file_handle: http://my_site/wp-content/plugins/my_plugin_folder/markers.xml. Но это не сработало.

Я также попытался изменить разрешения на markers.xml следующим образом:

(Me): чтение и запись (неизвестно): Только для чтения все: чтение и запись

По какой-то причине мой Mac не позволит мне меняться (неизвестно) на чтение и запись. Я не уверен, что это имеет значение. Я щелкнул правой кнопкой мыши по файлу и выбрал "Получить информацию", чтобы изменить разрешения.

В phpInfo() у меня есть:

"Зарегистрированные потоки PHP https, ftps, compress.zlib, compress.bzip2, php, file, data, http, ftp"

Является ли параметр WordPress причиной проблемы? или это просто проблема с PHP?

Любые предложения по решению этой проблемы?

Спасибо.

4b9b3361

Ответ 1

Вам может потребоваться изменить права администратора. Откройте терминал на своем Mac, а затем откройте каталог, в котором находится markers.xml. Затем введите:

sudo chmod 777 markers.xml

Вам может быть предложено ввести пароль. Кроме того, это могут быть каталоги, которые не позволяют получить полный доступ. Я не знаком с WordPress, поэтому вам может потребоваться изменить разрешение каждого каталога, перемещающегося вверх в каталог mysite.

Ответ 2

[function.fopen]: failed to open stream

Если у вас есть доступ к файлу php.ini, попробуйте включить Fopen. Найдите соответствующую строку и установите ее как "on": и если в wp, например localhost/wordpress/function.fopen, в php.ini:

allow_url_fopen = off
should bee this 
allow_url_fopen = On

And add this line below it:
allow_url_include = off
should bee this 
allow_url_include = on