2012-08-14 70 views
0

我無法通過PHP下載遠程文件。使用PHP下載文件時,什麼都沒有發生?

我試過使用cURL和流式傳輸,都沒有產生錯誤。

這是我現在的流媒體代碼。

$url = "http://commissiongeek.com/files/text.txt"; 
$path = "/files/cb.txt";  
file_put_contents($path, file_get_contents($url)); 

我會下載一個壓縮文件時,我得到這個工作,但在理論上這應該只是罰款...

該文件夾的權限設置爲777,和以前一樣說,不錯誤正在被拋出。 這可能是什麼原因造成的?

+0

添加在腳本的開頭:'的ini_set( 'display_errors設置',1); error_reporting(E_ALL);'你得到什麼錯誤? – Jocelyn 2012-08-14 17:05:05

+0

檢查apache的錯誤日誌 – Julien 2012-08-14 17:05:53

+0

也許你的服務器已經被配置,你沒有權限通過這些函數訪問外部文件。 – MikkoP 2012-08-14 17:06:53

回答

1

拆分這分成多個部分,這樣你就可以驗證每個階段的工作:

$url = 'http://...'; 
$txt = file_get_contents($url); 
var_dump($txt); 
var_dump(file_put_contents('/files/cb.txt', $txt)); 

第一個轉儲應該告訴你什麼該URL返回該文本。第二個轉儲應該輸出一個布爾值true/false,取決於file_put是否失敗。

+0

謝謝,我現在就給這個鏡頭。 – user1146223 2012-08-14 17:04:54

+0

獲取此響應...「NULL bool(false)」看起來由於某種原因沒有獲取文件。也許我的主機禁用了這些功能。 – user1146223 2012-08-14 17:06:04

+0

沒關係,我犯了一個錯誤複製代碼,現在響應不同了......「string(25)」這只是一個文本文件。「bool(false)」雖然file_put_contents仍然是false。 – user1146223 2012-08-14 17:08:42

0

看來你有你試圖保存在一個絕對路徑。我相信你想更改爲「文件/ cb.txt」,而不是道路,不必/文件的任何接入/

0

如果你allow_url_fopen選項設置爲true:

$url = 'http://example.com/image.php'; 
$img = '/my/folder/flower.gif'; 
file_put_contents($img, file_get_contents($url)); 

否則使用捲曲:

$ch = curl_init('http://example.com/image.php'); 
$fp = fopen('/my/folder/flower.gif', 'wb'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
+0

謝謝Blakdronzer。我試過cURL的結果相同。我現在正在與主持人談論這個問題。 – user1146223 2012-08-14 17:17:31

相關問題