如何在 PHP 复制时发送登录信息


How to send login information while PHP copy

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

当我尝试在没有任何登录权限的情况下复制文件时,此代码运行良好。但是当我尝试使用登录权限复制文件时,该文件不会被复制。是否也可以发送登录信息?

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

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

记住要考虑安全性。

假设登录是基本的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.';
}