在PHP中打印变量会导致服务器返回false

在PHP中打印变量会导致服务器返回false,php,variables,memory,printing,echo,Php,Variables,Memory,Printing,Echo,我有145064642个字符长的HTML字符串,我正在尝试打印 当我尝试echo/var_dump/die时,它会导致页面返回false(0),但如果我尝试只打印变量的一半,它工作正常 示例: 不工作: echo$MY\u HTML\u STR die($MY\u HTML\u STR) var\u dump($MY\u HTML\u STR) 两条线路中的每一条线路工程: die(var_dump(substr($MY_HTML_STR,strlen($MY_HTML_STR)/2)) die

我有145064642个字符长的HTML字符串,我正在尝试打印

当我尝试echo/var_dump/die时,它会导致页面返回false(0),但如果我尝试只打印变量的一半,它工作正常

示例:

不工作:

echo$MY\u HTML\u STR
die($MY\u HTML\u STR)
var\u dump($MY\u HTML\u STR)

两条线路中的每一条线路工程:

die(var_dump(substr($MY_HTML_STR,strlen($MY_HTML_STR)/2))

die(var_dump(substr($MY_HTML_STR,0,strlen($MY_HTML_STR)/2))

但是,当试图同时打印这两个文件时:

var_dump(substr($MY_HTML_STR,strlen($MY_HTML_STR)/2));
die(var_dump(substr($MY_HTML_STR,0,strlen($MY_HTML_STR)/2)));
它又崩溃了

一种回音方式确实给了我一个错误:

echo <<<EOF
    TEXTTEXT...
       $MY_HTML_STR                   
    BLABLAHTML...
EOF;

echoecho不喜欢太长的字符串。如果要打印,请使用for循环将其拆分为更小的字符串,substr()大约为10000个字符,如果出现问题,则更小


您超出了内部写入缓冲区的容量太多。

检查输出缓冲是否打开。请记住,如果启用了输出缓冲,则输出的所有内容都将保留在内存中,直到刷新输出为止(这在脚本关闭时也会隐式发生)

在打印之前,请尝试使用ob_end_clean(),看看这是否解决了您的问题

此外,请在打印前尝试添加以下代码。您可以使用嵌套输出缓冲(例如,如果在php.ini中启用了它,并且在脚本的开头调用ob_start)


这可能与您的问题没有直接关系,但是
var\u dump()
不会返回任何内容。运行
die(var_dump(…)
与运行
die(null)
die(0)
类似,当然,它们会随着code
0退出。与回声相同
echo(var_dump(…)
将在
var_dump()
运行后打印
null
。您的系统有多少RAM?还有哪些正在运行的程序正在耗尽您的RAM?(操作系统、浏览器、FTP程序、文本/html编辑器…)错误。。即使是真的,
echo$MY_HTML_STR
也会导致相同的错误。@TecBrat我有2.5GB的真实RAM和1.5GB的虚拟RAM,所以系统可以运行到4GB。但是我遵循了httpd.exe过程,它没有通过1GB,使用的RAM总量也没有通过2.25GB。@eranj,您可以在刚刚链接到的手册页面的“返回值”部分看到“没有返回值”。这意味着它不会返回任何东西。同样,这可能与您的问题没有直接关系,我只是指出您不应该调用
echo(var_dump(…)
die(var_dump(…)
,而应该是
var_dump(…)
。这是
echo
限制的文件吗?我在echo php文档的用户评论中读到了它。我曾经遇到过类似的问题,这重新解决了我的问题。您可以将其与在ince尝试在打印机中填充2000个打印作业进行比较,打印机将失败,或者计算机上的spool服务器也会失败。ob_get_level()返回true(1);根据@Michael Dibbets的回答,将
ob\u end\u clean()
和substr()循环结合起来解决了这个问题。非常感谢。
print ob_get_level();
exit;