Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP致命错误:允许的内存大小33554432字节已用尽(尝试分配41007872字节)_Php_Memory_Email - Fatal编程技术网

PHP致命错误:允许的内存大小33554432字节已用尽(尝试分配41007872字节)

PHP致命错误:允许的内存大小33554432字节已用尽(尝试分配41007872字节),php,memory,email,Php,Memory,Email,当我试图调用mail()函数时,出现了这个错误 我尝试将ini\u集('memory\u limit','64m')添加到我的index.php文件中,其中包括()的所有其他文件,但它没有修复它 然后,我尝试将一个php.ini文件添加到根目录(index.php所在的目录)中,其内容为memory\u limit=64M,这给了我PDO类not found错误。因此,我将PDO扩展添加到php.ini文件中,现在所有错误都消失了 但是,代码仍然失败。phpinfo()显示内存限制已增加到64M

当我试图调用mail()函数时,出现了这个错误

我尝试将
ini\u集('memory\u limit','64m')
添加到我的index.php文件中,其中包括()的所有其他文件,但它没有修复它

然后,我尝试将一个php.ini文件添加到根目录(index.php所在的目录)中,其内容为
memory\u limit=64M
,这给了我PDO类not found错误。因此,我将PDO扩展添加到php.ini文件中,现在所有错误都消失了

但是,代码仍然失败。phpinfo()显示内存限制已增加到64M,但my mail()函数正在终止页面的执行

我怎样才能解决这个问题/

邮件功能

(33554432字节)+(41007 872字节)=71.1081543兆字节


把你的内存限制设为96M,今天到此为止

如果我查看SafeString类,我没有看到unsafeRaw()方法,但是有一个toUnsafeRawString()方法。你试过调试吗


顺便说一句,如果您使用的是原始值,为什么要使用这个类?这没有任何意义。

如果将内存限制设置得越来越高不起作用,可能在某个地方有一个无止境的循环,在达到限制之前分配内存空间。
我不确定如何保存str_replace()函数,但它可能会在此处创建一个无休止的循环:

str_replace("\n.", "\n..", $message);
“\n.”将被替换为“\n…”==>“\n…”可能被替换为“\n…”=>。。。。
您正在使用越来越多的内存,直到达到限制为止。

您为替换提供的字符可能会导致
stru replace
函数无休止地循环。为php设置最大内存限制也不是一个好主意。尝试另一个字符串函数。也许:

$message = preg_replace("\n.", "\n..", $message);
preg_replace
非常适合此类字符,在不知道该做什么的情况下,可能不会在许多无用的循环中运行


我希望这会有所帮助。

邮件功能可能不是你的问题,它可能只是已经装满的桶中的最后一滴。尝试在代码的其余部分查找问题。尝试分配40MB。。。unsafeRaw()方法在做什么?
$message = preg_replace("\n.", "\n..", $message);