【重大bug】TP3.2放到 linux环境下出现程序内存分配问题!

浏览:1152 发布日期:2014/05/14 分类:技术分享
:(
Allowed memory size of 1916796928 bytes exhausted (tried to allocate 3086655745 bytes)
错误位置
FILE: /data/xxx/ThinkPHP/Common/functions.php  LINE: 370

错误位置
FILE: /data/web/partTime/ThinkPHP/Library/Think/Template.class.php  LINE: 423
ThinkPHP3.2.2 { Fast & Simple OOP PHP framework } -- [ WE CAN DO IT JUST THINK ]
------------------------------------------------
问题原因在于:preg_replace_callback匹配很多次时会出现内存泄露。
而出现内存分配不足问题。原本是php开发团队的问题,从而导致TP无法运行。
------------------------------大家可以测试下这个例子--------------------------------------------<?php
$content='<php>asdfsadf</php><php>asdfsadf</php><php>asdfsadf</php><php>asdfsadf</php><php>asdfsadf</php><php>asdfsadf</php> testtest';
$a=123;
$content= preg_replace_callback('/<php(\s*?)>(.*?)<\/php(\s*?)>/is', function($match) use($a){return 123;}, $content);
echo $content;
windows下没有问题。在Linux下环境就会出现和以上同样的问题:
-------------------运行结果---------------------
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3086503041 bytes) in /data/web/partTime/test2.php on line 4
----------------------------------------------------
请TP官方团队帮忙解决,3天内没有解决,本周我就自己写代码替换出现内存泄漏的问题了。
最佳答案
评论( 相关
后面还有条评论,点击查看>>