PHP で HTTP プロキシ設定を構成する方法

PHPでHTTPプロキシ設定をセットするには、stream_contextのパラメータを変更すればできます。サンプルコードは次のとおりです。

$proxy = 'tcp://proxy.example.com:8080'; // 代理地址
$proxyAuth = 'username:password'; // 代理认证信息
$context = stream_context_create([
'http' => [
'proxy' => $proxy,
'request_fulluri' => true,
'header' => "Proxy-Authorization: Basic " . base64_encode($proxyAuth)
]
]);
$url = 'http://www.example.com'; // 要访问的 URL
$response = file_get_contents($url, false, $context); // 使用代理访问 URL
var_dump($response);

上記のコードでは、まずプロキシのアドレスと認証情報を定義しています。その後、stream_context コンテキストオブジェクトを作成し、http パラメータにプロキシのアドレス、完全な URI のリクエスト、プロキシ認証情報を設定しています。最後に、file_get_contents() 関数を使用して、指定された URL にアクセスし、コンテキストオブジェクトを 3 番目のパラメータとして渡しています。

プロキシ認証を使用する場合は、適切なユーザ名とパスワードを指定し、かつ認証に Base64 エンコーディングされた形式を使用する必要があります。また、 request_fulluri パラメータを true に設定すると、PHP ではパス部分だけでなく、完全な URI が使用されます。

curl_setopt() ファンクションを使用して、cURL 拡張を利用している場合にプロキシを設定することもできます。次のようになります。

$proxy = 'proxy.example.com';
$port = 8080;
$username = 'username';
$password = 'password';
$ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYPORT, $port);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "$username:$password");
$url = 'http://www.example.com'; // 要访问的 URL
curl_setopt($ch, CURLOPT_URL, $url);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);

上述のコードでは、最初にプロキシのアドレスとポートを設定し、次にプロキシのユーザー名とパスワードを設定します。そのあと curl_setopt() 関数を使用して cURL オプションを設定します。ここには、プロキシのアドレス、プロキシのポート、認証情報などが含まれます。最後に curl_exec() 関数を使用してリクエストを実行し、レスポンスを取得します。

HTTP プロキシは、どちらの方法でも設定できます。ご自身のニーズに合わせて最適な方法を選択します。

bannerAds