Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 卷曲度+;代理-如果代理地址不可用,请重新加载脚本_Php_List_Curl_Proxy - Fatal编程技术网

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

我有一个问题-我正在使用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.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;

?>