使用cURL和PHP处理1,000多个URL的列表

时间:2012-03-02 15:40:20

标签: php mysql curl

我接受了一个自由职业,使用cURL创建一个PHP脚本,它将获取一个URL列表,每个URL重定向到一个新的URL,所以目标是输入一个URL列表,结果是获取一个列表他们都重定向到的网址。

我能够用curl_multi_exec完成此操作我的脚本当前并行运行5个卷曲句柄,并且在5个上它为下一个5启动了一个新批处理。我增加了PHP的超时和内存,它确实有效以及100个URL的列表。

问题是该人希望能够输入1,000个或更多URL并运行它。当我使用他的列表执行此操作时,它将运行大约7-8分钟,最终它将在我身上显示白屏。

当我启动项目时,我被告知了100个URL,这就是为什么我走这条路线但是有这么大的列表我认为我应该使用MySQL数据库导入所有的URL然后循环通过它们在100一段时间。

如果有人知道更好的方法,或者如果有办法在不使用数据库的情况下执行此操作,我只是在寻找一些反馈?有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我建议你,“那个人”将列表导入数据库,你可以从那里检索URL,将结果写回数据库。

但是,...您可以将您的PHP脚本作为CLI脚本启动(使用命令行),然后您可能没有超时问题。但这意味着,URL列表将通过CLI提供,例如作为文件系统上的文本文件。

答案 1 :(得分:0)

如果你对你的脚本工作很满意,虽然速度很慢,那么考虑在每批5之后添加一个刷新。这样浏览器在等待时可能不会超时。或者将输出写入单独的文件(仍然使用flush)并使用ajax查询文件,直到完成。