2013-02-13 32 views
0

以下wget命令以遞歸爬行全域,保存在一個文件夾中下載的文件,然後刪除這一切做得很好:通過PHP exec()獲取遞歸wget只獲取第一頁?

wget --delete-after -r -nd http://www.example.com/ 

當在命令行中運行,這完美的作品。當通過PHP的exec(或系統了shell_exec,中繼)運行如下,只取索引頁,但似乎跟沒有比這更深:

exec('wget --delete-after -r -nd http://www.example.com/'); 

如果這是一個權限問題,我倒是覺得它也不會下載索引頁面,但它確實(當我取出' - 刪除後'時顯着)。

沒有涉及robots.txt,如果通過回聲傳遞它,則不顯示輸出。我錯過了什麼?

+0

如果您將一個空數組作爲第二個參數並在執行後轉儲它,那麼數組中會有什麼?它是輸出容器。它有什麼理由停下來? – Alexey 2013-02-13 22:07:43

+0

數組變爲空:array(0){} – redburn 2013-02-13 22:11:29

+0

並且如果您傳遞第三個參數,那麼在執行後它的值是多少?此外,你可以嘗試添加-v到wget params並在此之後轉儲輸出? – Alexey 2013-02-13 22:20:29

回答

0

畢竟它似乎是一個權限問題,因爲添加--directory-prefix參數修復了它。

wget --delete-after -q -r -nd -P /home/example.com/public_html/tmp/ http://www.example.com 

我的前綴設置爲一個目錄PHP-FPM肯定能接入,而以前我坦率地說,沒想到它被暫時保存文件(「」是默認的目錄,但哪來那是?)。