2012-07-19 46 views
1
$url1 = 'www.somewebsite.com/somefile.ext'; 

if (@copy($url1, "somefolder/filename.ext")) 
{ 
echo 'File 1 saved.'; 
} 

當我試圖複製文件沒有任何登錄權限時,此代碼效果很好。但是,當我嘗試複製具有登錄權限的文件時,該文件不會被複制。無論如何也要發送登錄信息嗎?如何發送登錄信息,而PHP複製

回答

3

的常用方法是將編碼的URL登錄信息,服務器之前。例如:

http://user:[email protected]/somefile.txt 

記住要考慮安全性。

1

假設登錄是一個基本的HTTP一個,你可以使用stream_context_create來傳遞您的詳細資料:

$cred = sprintf('Authorization: Basic %s', 
     base64_encode($username . ":" . $password)); 

$context = stream_context_create(array(
    'http' => array(
     'header' => $cred 
    ) 
)); 

$url1 = 'www.somewebsite.com/somefile.ext'; 

if (@copy($url1, "somefolder/filename.ext", $context)) 
{ 
    echo 'File 1 saved.'; 
}