2013-07-16 49 views
0

我想下載git master.zip到php代碼目錄。我正在使用cURL來下載它,並且我已經運行了代碼,因此該方面正在工作。我想知道如何得到正確的文件從一些主要的URL,如在php下載git master repository

https://github.com/{group}/{project}/archive/master.zip 

的文件我收到只有1個字節的信息,我想知道我要去的地方錯了。這裏是我用於下載的代碼

<?php 
//just an example repository 
$url = 'https://github.com/octocat/Spoon-Knife/archive/master.zip'; 

$fh = fopen('master.zip', 'w'); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_FILE, $fh); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // this will follow redirects 
curl_exec($ch); 

print 'Attempting download of '.$url.'<br />'; 
if(curl_error($ch) == '') 
    $errors = '<u>none</u>'; 
else 
    $errors = '<u>'.curl_error($ch).'</u>'; 
print 'cURL Errors : '.$errors; 

curl_close($ch); 

fclose($fh); 
?> 

謝謝。

+0

我收到整個文件 – DevZer0

+0

奇怪,我收到過的文件上的測試庫,但不是我從被抓取的實際存儲庫。任何想法可能是什麼問題? –

+0

很難說沒有真正遇到問題開始 – DevZer0

回答

2

如果allow_url_fopen設置爲Onphp.ini中,您可以簡單地使用file_get_contents()。在這種情況下不需要捲曲。我用成功下載我的倉庫之一的master.zip

file_put_contents("master.zip", 
    file_get_contents("https://github.com/metashock/Hexdump/archive/master.zip") 
); 
+0

是我有我的php.ini文件正確設置。我意識到這可能是因爲我試圖從私有存儲庫獲取master.zip。我沒有對存儲庫的控制,那麼有什麼辦法可以用私有存儲庫來做到這一點? –

+0

我猜私人的手段*私人*;) – hek2mgl

+0

好吧,謝謝你的幫助 –