PHP cURL 在连接后从代理接收到 HTTP 代码 407
PHP cURL Received HTTP code 407 from proxy after CONNECT
我 php curl
有代理问题。
下面是我的代码:
<?php
$proxylist = file('proxy.txt');
$random_proxy = $proxylist[mt_rand(0,count($proxylist)-1)];
$pinfos = explode(':', $random_proxy);
$proxyipport = $pinfos[0].':'.$pinfos[1];
$proxyuserpwd = $pinfos[2].':'.$pinfos[3];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://google.com');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxyipport);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyuserpwd);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch).'<br/>';
}
curl_close($ch);
echo $result;
?>
proxy.txt
中代理的格式是 ip:port:user:pass
,所有代理都在工作。
问题是当我在 CURLOPT_PROXY
和 CURLOPT_USERPWD
中使用 $proxyipport
和 $proxyuserpwd
时,curl 结果抛出错误 Received HTTP code 407 from proxy after CONNECT
。但是,当我将这些变量替换为实际的 ip:port
、user:pass
时,它会正常工作。我还做了 $proxyipport
和 $proxyuserpwd
的 echo
,它向我展示了预期的 ip:port
和 user:pass
。
有人可以告诉我做错了什么以及如何解决吗?
提前致谢!
很可能是换行符\n
,所以试试:
$proxylist = file('proxy.txt', FILE_IGNORE_NEW_LINES);
如果它是另一个隐藏字符或 Windows 格式文件,那么用 \r
你可以尝试:
$pinfos = explode(':', $random_proxy);
$pinfos = array_map('trim', $pinfos);
我 php curl
有代理问题。
下面是我的代码:
<?php
$proxylist = file('proxy.txt');
$random_proxy = $proxylist[mt_rand(0,count($proxylist)-1)];
$pinfos = explode(':', $random_proxy);
$proxyipport = $pinfos[0].':'.$pinfos[1];
$proxyuserpwd = $pinfos[2].':'.$pinfos[3];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://google.com');
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_PROXY, $proxyipport);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyuserpwd);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch).'<br/>';
}
curl_close($ch);
echo $result;
?>
proxy.txt
中代理的格式是 ip:port:user:pass
,所有代理都在工作。
问题是当我在 CURLOPT_PROXY
和 CURLOPT_USERPWD
中使用 $proxyipport
和 $proxyuserpwd
时,curl 结果抛出错误 Received HTTP code 407 from proxy after CONNECT
。但是,当我将这些变量替换为实际的 ip:port
、user:pass
时,它会正常工作。我还做了 $proxyipport
和 $proxyuserpwd
的 echo
,它向我展示了预期的 ip:port
和 user:pass
。
有人可以告诉我做错了什么以及如何解决吗? 提前致谢!
很可能是换行符\n
,所以试试:
$proxylist = file('proxy.txt', FILE_IGNORE_NEW_LINES);
如果它是另一个隐藏字符或 Windows 格式文件,那么用 \r
你可以尝试:
$pinfos = explode(':', $random_proxy);
$pinfos = array_map('trim', $pinfos);