2016-06-26 70 views
0
<?php 
    $cmd = system("wget http://la-lg.hostus.us/500MB.test",$r); 
    echo $r; 
?> 

這是成功,我可以在我的目錄中看到新的500MB.test,但爲什麼返回'-1'?PHP系統() - 返回狀態總是-1

+1

它在我的系統上返回1 –

+1

由於您的請求在本地文件是相同的還是隻是一些字節和wget確實創建的名稱?根據wget版本,它可能是「1通用錯誤代碼」。它在你的系統shell上工作嗎?如果結束,你可以用'$?'檢查返回碼......快樂的黑客!我讀了連字符作爲連字符而不是減號;-) – Dilettant

+0

Thx,Linux或windows?我的系統是centos –

回答

0

我純粹猜測這個,但我認爲你得到-1,因爲wget立即返回,因爲它工作異步。在那個階段,地位是根本不知道的。您應該檢查$cmd以查看命令是否已成功執行。請參閱:

http://linux.about.com/od/commands/l/blcmdl1_wget.htm

它說:「這可以讓你開始從系統中檢索和斷開,讓Wget的完成這項工作。」

您可以通過檢查system()執行多長時間來測試該理論。在不到1秒的時間內,您可能無法下載500MB。

請仔細檢查下載文件的日期。

+0

Thx,我可以在我的Windows服務器上運行它。可能會異步地解決一些問題。我該如何解決它? –

+0

據我所知,在後臺運行該命令的命令末尾需要顯式的&&(&符號)。你沒有這個。那爲什麼我要求你測試'wget'是否在後臺運行,或者不運行。你還沒有報道過。所以我目前沒有任何建議來解決它。信息是正確診斷問題的關鍵。 –