1

我有一个脚本来捕获通过管道发送给它的电子邮件,解析这些部分并将它们插入数据库。该脚本运行良好,我已经反复测试它,将我自己的电子邮件转发给它。但是,当我将客户的电子邮件转发到同一脚本时,电子邮件会反弹并出现以下错误:

PHP 警告:PHP 启动:无法加载动态库 '/etc/ixed/ixed.4.4.lin' - /etc/ixed/ixed.4.4.lin:未定义符号:第 0 行未知中的空字符串

我已执行以下操作来尝试纠正导致反弹的其他问题,但这似乎处于较低级别:

  • 在管道命令中添加“-q”,例如“|/usr/bin/php -q /home/path/to/script”
  • 将 error_reporting(0) 添加到脚本顶部
  • 确保在 <%%> 标记之外没有空格导致输出。

如果有人以前见过这个并找到了解决方案,我将不胜感激。

4

1 回答 1

1

您的error_reporting设置太晚了(错误是启动错误,在调用 error_reporting 之前)。选项(按个人喜好顺序):

  • 在某处修复不正确的 PHP 设置(运行php --ini以检查加载了哪些文件并删除引用 ixid 的行或修复库本身)
  • 使用完整的默认设置运行(因此没有加载 php.ini:| /usr/bin/php -n /home/path/to/script
  • 在抑制显示错误的情况下运行:| /usr/bin/php -d display_errors=0 /home/path/to/script

当然,默认情况下运行display_errors关闭可能不是一个坏主意,并且只记录错误,因为您的用户永远不必处理他们无法自行修复的错误和错误描述。

于 2011-01-24T17:40:14.030 回答