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 に答える