2014-02-05 47 views
0

我使用PHP DOM从网页中提取数据,然后当我得到所需的信息时,我从下一页提取链接并将代码指向该页面等等向前。PHP循环状态变化监测

我在监视一些变化。

一切都很好,直到我流动缓冲区,因为它认为PHP被困在一个循环中,并打破了代码。我知道我可以删除暂停,但我想知道是否有人知道更好的方法来构建此代码,请告诉我。

这是一个基本的流程图第一网页

  1. 获取地址
  2. 做数据提取
  3. 从页面
  4. 用头内得到下一个页面地址重定向到该页面
  5. 转到步骤1.除非没有下一页,否则停止

所以大多数时候我会在杀死php之前通过这个循环8-12次。我需要继续这样做直到我完成流程图。无论如何,我可以在进入下一页之前清空缓冲区。顺便说一句,这整个事情是在一个代码中“data.php

+0

试图创建自己的P * RN过滤器吗? – Timmetje

+0

查阅php长时间运行的任务。但实际上,PHP对于这种事情来说是一个糟糕的选择。最好选择一种带有线程和内置事件的语言。 – Steve

+0

@TimDinh LOL好!但没有 –

回答

0

如果你真的想使用PHP作为你的脚本你应该运行它作为CLI (Command Line Interface).现在我不知道你是否真的等待提取的数据来查看(实时)或者将数据保存到某个地方供以后使用,但有几种解决方案。

如果你只是想只运行一次脚本,或者只是想手动运行,请确保你的php已经安装在你的unix或windows。

Windows:将您的php目录设置为您的PATH系统变量,然后您可以在您的命令窗口中运行php myscript.php

Unix:我敢肯定,你不需要解释^^

有一些PHP CLI features如果你要问的输入或显示一些输出等。

如果你真的想要某种网页,你可以按下一个按钮,你的解压缩就会开始,你想看到数据,那么你可以做一些事情来保持你的浏览器工作。

您可以将您的提取任务排队,并让它随时通过web服务器上的cronjob运行。您的数据可用于查看cronjob运行脚本并提取所有数据的时间。

你也可以告诉cronjob每小时做这个事情,例如保存提取的数据以便查看。

或者您可以使用Ajax创建一个异步调用(jquery example),您仍然需要等待并留在页面上。但至少你的浏览器没有卡住。