Я изучаю, как писать плагин 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?
Любые предложения по решению этой проблемы?
Спасибо.
Возможно, вам придется изменить права администратора. Откройте терминал на вашем Mac, а затем откройте каталог, в котором находится markers.xml. Затем введите:
sudo chmod 777 markers.xml
Вам может быть предложено ввести пароль. Кроме того, это могут быть каталоги, которые не позволяют получить полный доступ. Я не знаком с WordPress, поэтому вам может потребоваться изменить разрешение каждого каталога, перемещающегося вверх в каталог mysite.
[function.fopen]: failed to open stream
Если у вас есть доступ к файлу php.ini, попробуйте включить Fopen. Найдите соответствующую строку и установите ее как «on»: & if в 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