我学习了如何编写WordPress插件。我需要一些帮助写一些数据到一个XML文件。我在我的本地机器上,一台运行MAMP的Mac。我有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:无法打开流:第73行的fopen中的权限被拒绝
警告: fwrite():提供的参数在第75行的/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中不是有效的流资源
警告: fclose():提供的参数在第76行的/Users/my_name/Sites/my_site/wp-content/plugins/my_plugin_folder/my_plugin_main_file.php中不是有效的流资源
我尝试在$file_handle行中使用绝对路径:http://my_site/wp-content/plugins/my_plugin_folder/markers.xml。但是,这并不管用。
我还尝试更改markers.xml上的权限,如下所示:
(我):读写(未知):只读每个人:读写
出于某种原因,我的Mac不允许我更改(未知)为读写模式。我不确定这是否有区别。我右击文件并选择'Get Info‘来更改权限。
在phpInfo()中,我得到:
“注册的PHP流https,ftp,compress.zlib,compress.bzip2,php,文件,数据,http,ftp”
是不是WordPress设置导致了问题?或者仅仅是PHP的问题?
对如何解决这个问题有什么建议吗?
谢谢。
发布于 2011-10-06 01:25:11
您可能需要以管理员身份更改权限。在Mac上打开终端,然后打开markers.xml所在的目录。然后键入:
sudo chmod 777 markers.xml
系统可能会提示您输入密码。此外,也可能是不允许完全访问的目录。我不熟悉WordPress,因此您可能必须更改每个目录向上移动到mysite目录的权限。
发布于 2013-06-20 06:55:46
[function.fopen]: failed to open stream
如果您可以访问您的php.ini文件,请尝试启用Fopen。找到相应的行并将其设置为"on":& if in wp,例如php.ini中的localhost/wordpress/function.fopen:
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
https://stackoverflow.com/questions/7665093
复制相似问题