Php 卷曲度+;代理-如果代理地址不可用,请重新加载脚本
我有一个问题-我正在使用CURL和PROXY。我正在从付费网络服务获取代理地址列表。列表如下所示(示例): 比如说,上面提到的列表可以在这里找到: 我的PHP代码如下所示:Php 卷曲度+;代理-如果代理地址不可用,请重新加载脚本,php,list,curl,proxy,Php,List,Curl,Proxy,我有一个问题-我正在使用CURL和PROXY。我正在从付费网络服务获取代理地址列表。列表如下所示(示例): 比如说,上面提到的列表可以在这里找到: 我的PHP代码如下所示: <?php $url = 'http://connect.to.another.example.net/'; //I want to open this url using one of the proxy address from the list $proxy_url = 'http://address.of.p
<?php
$url = 'http://connect.to.another.example.net/'; //I want to open this url using one of the proxy address from the list
$proxy_url = 'http://address.of.proxy.example.org';
function RandomLine($filename) {
$lines = file($filename) ;
return $lines[array_rand($lines)] ;
}
$random_proxy = RandomLine($proxy_url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, $random_proxy);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>
我已经注意到一些问题-有时一些代理是不可用的,该网站正在加载&加载&加载。。。如果站点加载时间过长,是否有可能重新加载脚本并获取新的随机代理?例如,如果代理在5秒内没有响应,脚本将再次加载?查看
CURLOPT\u TIMEOUT
,在任何情况下,当您在合理的时间内没有获得任何数据时,都将重新加载。另外,您是否确定来自代理列表站点的数据正确通过,并且没有因此而挂起?查看CURLOPT_TIMEOUT
,在任何情况下,如果在合理的时间内没有获得任何数据,请重新加载。另外,您是否确定来自代理列表站点的数据正确通过,并且不会因此而挂起?实际上,您正面临一个常见问题,无论是PHP还是curl,都无法自动解决。这有很多原因,但更普遍的原因是,你不能自动解决这个问题
您想通过某个代理列表建立连接。但另一方面,您无法控制该列表中的代理。因此,您可能会得到一个不起作用的代理
根据代理的定义,您要么信任地址,要么放弃地址。然而,如果你相信它,但你的决定是错误的,你可以被愚弄。因为您使用了自动度量,但还没有告知您的问题是否可以信任代理列表源是可靠的,所以我假设该源不是真正可靠的。因此,你会遇到一些你希望很容易解决的问题,但事实并非如此
我无法判断这是否真的是一个问题。然而我可以说的是,stackoverflow.com可能不是问你问题的合适网站
所以这不是一个真正的答案,而是一个冗长的评论。回答明智这是主观的,甚至不是建设性的,因为你没有分享你的代理证明人的地址
保重。并非所有这些代理列表都可以安全使用。但更一般地说,我们并不期望所有这些代理都能真正起作用。这些名单可能会改变。你得到了你所付出的代价,也许有人会说,或者,当你寻找一个可靠的代理时,为什么不自己运行一个呢?事实上,你正面临一个常见的问题,不管是PHP还是curl,都不会自动解决。这有很多原因,但更普遍的原因是,你不能自动解决这个问题 您想通过某个代理列表建立连接。但另一方面,您无法控制该列表中的代理。因此,您可能会得到一个不起作用的代理 根据代理的定义,您要么信任地址,要么放弃地址。然而,如果你相信它,但你的决定是错误的,你可以被愚弄。因为您使用了自动度量,但还没有告知您的问题是否可以信任代理列表源是可靠的,所以我假设该源不是真正可靠的。因此,你会遇到一些你希望很容易解决的问题,但事实并非如此 我无法判断这是否真的是一个问题。然而我可以说的是,stackoverflow.com可能不是问你问题的合适网站 所以这不是一个真正的答案,而是一个冗长的评论。回答明智这是主观的,甚至不是建设性的,因为你没有分享你的代理证明人的地址
保重。并非所有这些代理列表都可以安全使用。但更一般地说,我们并不期望所有这些代理都能真正起作用。这些名单可能会改变。你得到了你所付的钱,也许有人会说,或者,当你寻找一个可靠的代理时,为什么不自己运行一个呢?这样页面就不会加载。这意味着您无法获取任何HTTP响应代码?因此页面根本无法加载。意思是你不能得到任何HTTP响应代码?
<?php
$url = 'http://connect.to.another.example.net/'; //I want to open this url using one of the proxy address from the list
$proxy_url = 'http://address.of.proxy.example.org';
function RandomLine($filename) {
$lines = file($filename) ;
return $lines[array_rand($lines)] ;
}
$random_proxy = RandomLine($proxy_url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, $random_proxy);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>