在 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
上下文對象,并將代理地址、請求完整的 URI 和代理認證信息設置到 http
參數中。最后,使用 file_get_contents()
函數訪問指定的 URL,并傳入上下文對象作為第三個參數。
請注意,如果要使用代理認證信息,則需要提供正確的用戶名和密碼,并使用 Base64 編碼格式進行認證。另外,request_fulluri
參數設置為 true
是為了讓 PHP 使用完整的 URI,而不只是路徑部分。
如果你使用的是 cURL 擴展,也可以使用 curl_setopt()
函數來設置代理,如下所示:
$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 代理,你可以根據自己的需求選擇適合的方法。