PHP偶然创建了无限循环?

时间:2013-09-09 14:28:47

标签: php mysql loops

背景信息 - 我前一段时间创建了一个在线商店,我创建了网站并手动添加了所有产品信息。现在我已经掌握了php的知识我创建了一个刮刀/蜘蛛来获取我需要的所有必需信息而无需手工做任何事情

问题 - 我的脚本在我的本地服务器上运行,收集来自站点sitemap.xml的所有链接,一旦此脚本完成,它将上传到我的数据库,它开始通过链接提取所需的数据图片,价格,名称,描述等...我正在抓的网站并不高兴我这样做是因为人类/计算机错误只能被人类发现,但已经允许了。无论如何,当一个项目由于某些未知原因而无法被删除时,我的脚本有时会抛出一个错误,所以当脚本抛出此错误时我已经放了一个die()。

这是放在mysql while循环中的链接,我注意到几次,当发生错误时脚本停止加载显示确切的错误,但当我关闭浏览器时,它继续删除查询和提取信息我需要在停止之前手动重启服务器。

这怎么可能,我该怎么做才能防止这种情况发生?是die()语句只是杀死客户端脚本并保持服务器端脚本运行?

1 个答案:

答案 0 :(得分:0)

因此,您在本地运行PHP以从远程站点收集数据。您在本地浏览器中启动PHP脚本。当浏览器关闭时,脚本不会停止。

当然必须停止本地服务器。

但是我认为PHP也可以从命令行运行(可能只有Linux?)然后输出可以转到命令行,命令行可能会被杀死。

另一种解决方案是:在循环中检查(非)存在文件然后死掉。第二个PHP脚本,可在第二个浏览器选项卡中调用,然后添加/删除该信号文件。

(该文件也可以作为锁定,因此您不会开始两次数据收集。)