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

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

当我尝试在没有任何登录权限的情况下复制文件时,此代码运行良好。但是当我尝试复制具有登录权限的文件时,该文件不会被复制。无论如何也要发送登录信息吗?

4

2 回答 2

4

通常的方法是在服务器之前在 URL 中编码登录信息。例如:

http://user:password@example.com/somefile.txt

记住要考虑安全性。

于 2012-07-19T04:44:51.813 回答
2

假设登录是基本的 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.';
}
于 2012-07-19T04:44:00.967 回答