我正在尝试遍历我的数据库并在满足某些过滤条件后将数据添加到数组中,其中包括检查标题数据以查看是否存在URL。
我看到循环正在执行第一轮,因为如果我用退出打破循环,我会看到回显结果。但如果我不这样做,它就不会回应任何东西,继续无限地无所事事!
代码:
$gp=0;
include('connnew.php');
$getpages=$clientdb->query("SELECT * FROM clientdata ORDER BY Date DESC") or die("Pages Error : ".$clientdb->error);
while($subdinf=$getpages->fetch_assoc()){
$gp++;
echo "<div style='position:absolute;top:150px;right:60px;'>$gp</div>";
$subdinf['propheading']=$subdinf['propheading']."-".$subdinf['Id'];
$proph=$subdinf['propheading'];
$page=trim(str_replace($splchrs,'-',$proph));
$page=trim(str_replace("&","and",$page));
$page=trim(str_replace(array("---","--"),'-',$page));
if(substr($page,0,32)!="Want-to-Buy-any-kind-of-property" && substr($page,0,40)!="For-sale-1-BHK-2BHK-and-other-properties" && substr($page,0,38)!="Wanted-Apartments-and-other-properties" ){
$html5="http://www.landshoppe.com/$page";
$file_headers = get_headers($html5);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
echo "<h3>URL ".$html5." Does not exist !</h3>";
}
else {
$exists = true;
if(!in_array($html5,$link)){
$link[]=$html5;
echo $html5."<br>";
}
}
}
//echo $gp;exit;
}
echo "Total Pages : $gp<br><br>";exit;
当我无限期地等待一些输出时,有人可以帮我理解发生了什么吗?
答案 0 :(得分:1)
$getpages->fetch_assoc()
将为您提供一个需要在foreach循环中运行的数组。什么是$ gp在做什么。它只是在无限循环中递增。你能做的是
while($subd=$getpages->fetch_assoc()){
foreach ($subd as $subdinf){
//put rest of the code inside this
} }
这确保了当数组计数结束时它会停止循环。
您可以使用输出缓冲来显示循环的状态
ob_start();
// Your entire function here
$output = ob_get_clean();
echo $output;
检查此链接以及下面给出的示例。你会明白的 http://php.net/manual/en/ref.outcontrol.php