我拥有的:
(如果需要,可以在本地主机上查看或开火:http://pastebin.com/virLR7dF)
(看一看呈现我案例的图片:http://iv.pl/images/47143498348127804676.png)
我有一个PHP脚本,可以爬行给定的网站,并以可变的形式提取数据:
$ID = "data"; //this is just an example
$name = "data";
$price = "data";
$image = "data";脚本将把这些数据放入MySQL DB中。
怎么了?
我可以使用for循环来自动化它,这样我就可以一次得到更多的数据。但是如果我把它循环1,000,000次,我的脚本会在某个时候冻结,然后重新开始(找到它的坏地方,然后从那个点开始)是有问题的。
如何使用PHP/JS使其达到:
1.收集10部分数据
2.停止并显示收集到的数据的信息
3.收集接下来的10部分数据
4.停止并向先前显示的信息中添加新信息。
*有一个暂停函数在下一部分收集后停止
*有一个简历功能可以在最后一部分收集后开始
发布于 2012-05-04 08:01:04
输出缓冲可能会帮助您使用PHP
试试开始 & 同花顺
ob_start这个函数将打开输出缓冲。虽然输出缓冲是活动的,但是没有从脚本(除了头)发送输出,而是将输出存储在内部缓冲区中。 ob_flush这个函数将发送输出缓冲区的内容(如果有的话)
发布于 2012-05-04 08:16:51
在这样做的时候,有一些事情可能会引起问题。
1)在循环中触发错误,脚本停止执行。
解决方案:将错误转化为可捕获的异常。
2)你超过了时限。
解决方案:将时间限制设置为零
示例:
set_error_handler(function($errno, $errstr, $errfile, $errline) {
if($errno != E_STRICT && $errno != E_DEPRECATED && $errno != E_NOTICE) {
throw new Exception($errstr.' in '.$errfile.' on line '.$errline);
}
return false;
});
set_time_limit(0);
function my_loop_func() {
// do what ever...
}
while(true) {
try {
my_loop_func();
}
catch(Exception $e) {
// write some log message here might be good
}
sleep(10);
}https://stackoverflow.com/questions/10429089
复制相似问题