2013-05-03 56 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