在 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 代理,你可以根据自己的需求选择适合的方法。