嗨,我刚刚把我的php测试脚本上传到在线vps服务器上。这个脚本用于解析一个较大的XML文件(大约4M,7000行)。但是我的IE浏览器显示了下面的在线错误消息。
致命错误:允许在/var/www/test//index.php第26行中耗尽内存16777216字节(尝试分配77字节)
我确信我已经成功地在localhost上测试了php脚本。
在我的VPS上是否需要启用/修改任何配置?例如php.ini或apache服务器的某些设置?我刚刚证实,有大约200米的内存使用是可以为我的VPS。我怎么才能解决这个问题?
......
function startElementHandler ($parser,$name,$attrib){
global $usercount;
global $userdata;
global $state; // Line #26;
//Debug
//print "name is: ".$name."\n";
switch ($name) {
case $name=="_ID" : {
$userdata[$usercount]["first"] = $attrib["FIRST"];
$userdata[$usercount]["last"] = $attrib["LAST"];
$userdata[$usercount]["nick"] = $attrib["NICK"];
$userdata[$usercount]["title"] = $attrib["TITLE"];
break;
}
......
default : {$state=$name;break;}
}
}发布于 2010-05-05 10:09:24
您的PHP配置将PHP限制为16 to内存。您需要修改memory_limit配置指令在php.ini中以增加它。
查找php.ini中如下所示的行:
memory_limit = 16M...and改为大值(16M = 16 et,您可以将其增加到64 et的64M之类的值)。如果找不到这样的行,就加起来。
如果您只希望在每个脚本的基础上增加它,您也可以使用ini_set()来更改该脚本的值。
发布于 2010-05-05 10:13:01
您也可以使用使用()来找出程序的哪一部分正在消耗您的内存。
发布于 2010-05-05 10:25:19
使用SAX解析器而不是DOM解析器,您将不会耗尽内存。DOM占用的内存是实际文档流的8-10倍,而SAX具有合理的恒定开销,而不管文档大小如何。
https://stackoverflow.com/questions/2772198
复制相似问题