2013-05-03 92 views
2

我有一些PHP脚本,将html文件写入文件夹。这完全在WordPress以外工作。但是,当我尝试将我的代码合并到插件中时,它不会再写入文件夹。我甚至尝试将它写入我在WordPress之外的根目录下测试它的原始文件夹,并且它也不会写入该文件夹。Wordpress不使用fwrite()写入文件夹;

这是写入html文件的函数。

function buildFrameFile($html, $filename){ 
    $filename= '/wp-content/plugins/my-plugin/html/' . $filename . ".html"; 
$fh = fopen($filename, 'a');//open file and create if does not exist 
fwrite($fh, $html);//write data 
fclose($fh);//close file 

return $filename; 
} 

我甚至试过

$fh = fopen($filename, 'a'); 
$fh = fopen($filename, 'a+'); 
$fh = fopen($filename, 'w'); 
$fh = fopen($filename, 'a+'); 

没有这些工作要么。

我在考虑在WordPress中,它可能是一些php.ini文件或.htaccess文件,需要在我想写入的文件夹中,但我卡住了。

*更新**

我发现在错误日志中的一些错误和如下:

错误:FWRITE()预计参数1是资源,布尔在给定....

$fh = fopen($filename, 'a');//open file and create if does not exist 
fwrite($fh, $html);//write data 
fclose($fh);//close file 

第二更新

添加以下代码现在它在文件写入到文件夹

function buildFrameFile($html, $filename){ 
    $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; 
    $filename= $DOCUMENT_ROOT. '/wp-content/plugins/my-plugin/html/' . $filename . ".html"; 
$fh = fopen($filename, 'a');//open file and create if does not exist 
fwrite($fh, $html);//write data 
fclose($fh);//close file 

return $filename; 
} 

但是现在当它调用打开文件时,它试图对从以下链接

/var/chroot/home/content/##/########/html/wp-content/plugins/my-plugin/html/c413c4976260c1a786e7a48be03f3ad2.html 

打开它,我不相信链接将允许找到文件,因为它不会显示在浏览器中。

+0

是你的测试发生在同一个服务器上的WordPress的安装?你的服务器错误日志说什么? – JMC 2013-05-03 15:58:56

+0

是的,它在同一台服务器上,问题是我运行它时没有收到任何错误。 – 2013-05-03 16:02:13

+0

Wordpress可能会抑制错误。你检查了日志吗? – JMC 2013-05-03 16:03:20

回答

0

读取服务器的error_log并使用错误消息来诊断问题。如果您在日志中发现错误,请在此处发布以获得更好的答案。

编辑基于错误信息:

您可以尝试硬编码$文件名入则fopen()函数来测试,如果文件路径是在$文件名可变的不正确。

如果$ filename正确,则需要使用类似var_dump()的方法计算出$ fh的值。一旦您通过fopen使用wordpress传递它,最有可能的路径是$ filename。相反,你传递来自FALSE fopen的错误消息,指出它在试图打开文件时没有得到任何数据。有可能你只需要在wordpress试图打开它的地方创建一个空白文件。

+0

我已更新我的帖子,发现我发现的错误。 – 2013-05-03 18:11:34

+0

我用一个新的更新再次更新了我的帖子。我解决了写入问题,因为它现在将html文件写入文件夹,但由于它创建的链接,它无法在我相信的目录中找到它。 – 2013-05-03 19:16:27

+0

该链接是完整的系统路径。您只需要使用相对于试图打开文件的wordpress文件的路径打开文件。在这一点上,你应该接受我的答案,并将新问题作为一个新问题发布,因为它实际上是一个不同的问题。这可能是创建文件时的权限问题。自从你跟进以来,我就是你的问题+1。 – JMC 2013-05-03 19:27:44