通过代理访问cURL网页;中断循环

时间:2018-06-22 13:48:30

标签: php html curl php-curl

我有一个名为proxyManager.php的页面,该页面允许用户输入代理ip地址和端口;它将添加到数据库中,另一个名为campaignManager.php的脚本也可以访问该数据库。

campaignManager.php应该一直尝试通过代理从数据库中获取给定页面,直到成功获取正确的页面为止。在我的情况下,这是页面不包含特定字符串的情况。

当前使用的系统在连接时不会脱离foreach代理循环:

$query = "SELECT ipAddress, port FROM proxylist";
$res = $conn->query($query);
if(mysqli_num_rows($res)>0){
      while(!$proxyConnection){
        foreach ($res as $proxy)
        {
            $ip = $proxy['ipAddress'];
            $port = $proxy['port'];
            $sock = $ip .":". $port;
            $resultingPage = searchFunction($googleURL, $sock);
            if(isset($resultingPage)){
              if (!stringFlagged($resultingPage))
              {
                  echo "\n NOT BANNED PROXY";
                  $proxyConnection = true;

               }
               else {
                $proxyConnection = false;
                  echo "BANNED PROXY";
               }

此脚本的目的是从数据库中获取所有代理,并为每个代理使用代理设置尝试卷曲页面。如果使用stringFlagged,则应尝试使用另一个代理,否则应尝试退出代理,因为应该满足while循环条件。

目前,无论是否被禁止,它将继续尝试所有代理。我相信我需要使用break语句,但是我对PHP还是很陌生,不确定如何或在何处需要它。

1 个答案:

答案 0 :(得分:0)

删除while循环并在连接到代理时添加一个中断将打破foreach循环,如@Scuzzy和@Hudson所述