我有一个名为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,它应该尝试另一个代理,如果不是,它应该从foreach循环中断,因为while循环条件应该已经满足。
我认为我需要使用break语句,但是我对PHP非常陌生,不确定如何或在哪里需要它。
发布于 2018-06-22 22:04:10
删除while循环并在连接到代理时添加中断将中断foreach循环,如@Scuzzy和@Hudson所述
https://stackoverflow.com/questions/50989457
复制相似问题