我有一个包含 2000 个页面的站点,我想使用 file_get_html()
函数和正则表达式遍历每个页面以生成站点地图。
显然,这不能在一次服务器端执行中完成,因为它会因最大执行时间而耗尽时间。我猜它需要执行较小的操作,将进度保存到数据库,然后将下一个任务排队。有什么建议吗?
最佳答案
当您在命令行运行它时,将没有最大执行时间。
如果您的提供商允许操作,您也可以为此使用 set_time_limit(0);
。
我不知道您的 IP 地址是否会被禁止 - 因为这取决于您向其发送请求的服务器的安全性。
其他解决方案
您可以获取一个(或几个)页面,并在整个源代码中搜索新的 URL。然后您可以在数据库中对这些进行排队。然后在下一次运行时处理队列。
关于php - 如何使用 PHP 获得无限的最长执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7036767/