Fgets在130行PHP之后停止

时间:2011-07-05 03:14:57

标签: php fgets

    $done=0;
    $filename = "raw_urls.txt";
    if(! ($fhandle = fopen($filename, "r")))
{ echo "File failed to open"; 
    Exit; }
    //
    //  main loop reads sitemap url list
    //
    while($url_full_raw = fgets($fhandle,4096))
    {
    print (mysql_error());

$url_full= preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $url_full_raw);
if(strlen($url_full) > 3)
{
    $url_stat++;
    //  Echo ' tp1 Url from sitemap:',$url_stat,' - ' ,$url_full,'<br>';
    $end_st = strlen($url_full)-29;
    $s_url= substr($url_full,29,$end_st);
    //Echo 'short:',$s_url,'<br>';
    $url_full_raw= '';
}
else{
    $done++;
    Echo '----------- short string ---------------';
}
//
//        Check for url
//
$res1=sql("SELECT * FROM `spy3` WHERE `Landingpage` LIKE '%$s_url%' LIMIT 0, 30 ",$o);
if($row=mysql_fetch_array($res1))
{
    $lp=$row[6];
    $found++;
    //  Echo '------->Url from sitemap:',$url_full,'<br>';
}
else{
    Echo 'Not Found:-> ',$s_url,'<br>';
    $nfound++;
}
sql("insert into sitemap (url, stat_url,nf, s_recno) 
values (
'$url_full',
'$lp',
'$nfound',
'$url_stat'
)", $o);
print (mysql_error());
$found=0;
$nfound=0;

}

所以代码效果很好。除了一个问题,在大约130行后,它停止。它退出程序没有错误。是的完整错误报告已启用。 PHP.ini内存很大。 如果我编辑txt文件并取出一些行,没有区别。我一直在研究这个问题好几个小时。

1 个答案:

答案 0 :(得分:2)

尝试按照their example ...与!== false的方式进行操作。即,

while(($url_full_raw = fgets($fhandle,4096))!==false) {

我猜你的内容因任何原因都在评估为假。恰好是130行(将130行放入文本文件中,查看文件大小是否接近4 KB)。

此外,您可能希望下次修复格式。让我们很难阅读和帮助你。