作为 CMS 的一部分,我有一个 import-from-excel 脚本,该脚本以前运行时没有问题。
我的共享主机提供商最近升级了他们的基础设施,包括 PHP 从 5.1 到 5.2.6,脚本现在返回“未初始化的字符串偏移量:第 27 行 /path/scriptname.php 中的 -XXX”(XXX 是从512 和 /path/scriptname.php 当然是相关脚本的完整路径)。
它为 excel 文件的每一行返回此错误。第 27 行只是一个函数内部的返回,它是处理导入数据的第一个点:
function GetInt4d($data, $pos) {
return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | (ord($data[$pos+3]) << 24);
}
它最终以“致命错误:在第 133 行的 /path/scriptname.php 中耗尽的允许内存大小 47185920 字节(试图分配 71 字节)”而崩溃。
Apache 错误日志中没有任何用处。我难住了。有人对至少在哪里看有任何想法吗?即使知道它是否可能是我的脚本中的某些内容或与升级有关的内容也会很有用。我在同一提供商的另一个站点上遇到了另一个问题(升级后)无法将会话写入 tmp 目录(已解决),但我很确定不是这样(?)。
编辑:事实证明,答案与解析器的版本在某种程度上与 PHP 5.2.6 不兼容有关,我认为有问题的解析器是Spreadsheet Excel Reader可能对某人有用。