PHP导入脚本中未初始化的字符串偏移错误

时间:2008-10-08 22:52:31

标签: php apache web-hosting

我有一个从excel脚本导入的脚本作为以前无问题地运行的CMS的一部分。

我的共享托管服务提供商最近升级了他们的基础设施,包括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); 
}

它终于崩溃了“致命错误:允许的内存大小为47185920字节耗尽(试图分配71个字节)在第133行的/path/scriptname.php”。

Apache错误日志中没有任何用处。我很难过。任何人都有任何想法,至少在哪里看?即使知道它是否可能是我的脚本中的内容或与升级有关的东西将是有用的。我在同一个提供程序上有一个不同的站点的另一个问题(升级后)无法将会话写入tmp目录(自解决后),但我很确定它不是那个(?)。

编辑:事实证明答案是与解析器的版本在某种程度上与PHP 5.2.6不兼容,我认为它可能对某人有用,因为有问题的解析器是{{3 }。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

  

未初始化的字符串偏移量:

...表示$data不是数组。

答案 2 :(得分:1)

感谢您的输入,通过我找到我正在使用的解析库的更新版本,情况已“解决了”。我的猜测是这个问题与php版本之间的区别有关,虽然我不确定究竟是什么。固定但令人沮丧。

编辑:我将接受Till的回答纯粹是为了结束这个问题。再次输入。