【问题标题】:time exceed in PHP ? Want to increase time?时间超过 PHP ?想增加时间?
【发布时间】:2019-07-06 06:25:34
【问题描述】:

我正在尝试从 HTML 文件中解析 HTML 数据。我有一个包含许多链接的文件。我得到这些链接并将它们加载到 file_get_contents($link) 中(我对所有 This stuff 使用 simple_html_dom )并希望在这些链接中找到特定的文本。在我遇到致命错误之后,它对三个或五个链接非常有效:简单 HTML Dom 第 82 行中的时间超过 30 秒。

我猜的问题是什么? 网速慢(我无法增加)。 PHP.INI 文件配置 简单的htmldom配置

我尝试了什么但失败了?

我已将 max_execution_time 编辑为 0 和 300,但重启服务器后不起作用(使用本地 XAMPP 服务器)

我也尝试编辑 simple_HTML_Dom.PHP 但没有成功。

我不知道我的服务器是否设置了安全模式

谢谢你, 实际上,我们是一群试图做一个项目的大学生。

【问题讨论】:

  • 判断请求或解析 HTML 是否耗时过长

标签: php web-scraping web-crawler simple-html-dom max-execution-timeout


【解决方案1】:

我知道您尝试设置 max_execution_time,但您可以尝试直接在 PHP 脚本中使用 ini_set 进行设置:

ini_set('max_execution_time', 300);

也可以试试default_socket_timeout,这会改变file_get_contents函数的默认超时时间:

ini_set('default_socket_timeout', 300);

【讨论】:

  • 感谢 Fransico Huppe 对我们的帮助。我们只想问PHP.INI和ini_set的设置不同吗?
  • 并非如此,当您只想更改特定脚本的配置时使用 ini_set,但如果您在 PHP.INI 中更改它并且服务器正确重启,它具有相同的效果跨度>
【解决方案2】:

在 PHP.ini 中将 max_execution_time 设置为 0 是个坏主意,因为超时对于网络服务器来说是必不可少的。但是,为了方便耗时的脚本,您可以使用 ini_set('max_execution_time', 0) 临时设置 max_execution_time 的值。

将值放入脚本后,在脚本执行期间保持新值,并在脚本结束时恢复。

【讨论】: