脚本没有明显原因终止

时间:2013-05-19 10:33:28

标签: php

我正在努力使用通过XML导入数据的脚本。共有大约19,000种产品,分布在76个文件中,我的脚本遍历每个文件,解析数据并将其导入数据库。

出于某种原因,脚本终止而没有告诉我什么是错的。

  1. 我正在error_reporting(E_ALL);使用ini_set("display_errors", 1);
  2. 我有关于SQL的错误报告,但没有错误
  3. 我正在通过memory_get_usage()跟踪内存使用情况 - 没有接近集合memory_limit
  4. 我为每个项目重置了time_limit()并且有足够的时间
  5. 奇怪的是,脚本根据我输出的日志记录量在不同的点停止。如果我不更改输出,脚本将停在同一点。如果我添加(或删除)额外的日志记录(/ output),脚本将在不同的点停止。

    它似乎与内存或超时有关,因为基于输出的随机点终止,但我无法弄清楚导致它的原因。没有错误消息......

    我该怎么做才能找出问题所在?

    更新

    毕竟服务器上似乎没有显示错误。我只是强制致命错误(删除了一个分号),然后我收到一条浏览器消息,说有500个服务器错误。当我在本地机器上执行相同操作时,会收到一条真实的错误消息。这可能是什么?当我打印error_reporting()时,我得到“1”而ini_get("display_errors")显示“6143”(这是E_ALL)。如何显示错误消息?

    我还检查了phpinfo()的时间限制,默认情况下是30,但是当我在set_time_limit(60);之前添加phpinfo时,它显示为60.所以这一切似乎都是正确的。根据phpinfo safe_mode关闭

    在执行脚本执行计时之后,我看到它在12秒后死亡 - 所以它不能是time_limit

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

事实证明,错误是由无限循环(致命错误)引起的,并且因为在php.ini中关闭了error_reporting,所以没有显示致命错误(如@amir所说)。我设法在我的本地机器上重现了这个问题并且确实得到了导致我遇到问题的错误。