PHP-print_r(get_defined_vars());返回空白屏幕


PHP - print_r(get_defined_vars()); returns blank screen

我正试图在php中获取变量转储,因此我使用:

print_r(get_defined_vars());

生成它,但无论我在哪里插入代码,它都会导致一个空白页。有什么想法吗?

输出的变量之一可能包含阻止加载网站的HTML、CSS和/或JavaScript代码。

查看源代码(在大多数浏览器中使用Ctrl+U,或右键单击→View Source)而不是呈现的页面,以查看php脚本输出的所有内容。

此外,通过插入echo "test";,确保php代码得到实际执行。这应该显示出来,至少在源代码中是这样。

当然你的代码是正确的,所以出现空白页面的原因一定是其他地方有错误(如果你不放那一行,页面能工作吗?);也许您的行破坏了代码块的语法。

然后,错误被重定向到php_errors.log或其他文件,或者可能甚至没有生成,您会看到一个空白页面。

检查:

  • 尽早在脚本中包含error_reporting(E_ALL)
  • 错误会出现在php.ini中应该出现的位置
    • 检查那些错误日志文件(如果有的话)
  • 检查服务器错误日志(例如Apache的error_log文件)

一旦清除了上游错误,就应该能够看到您的输出。

get_defined_vars在其返回的变量中包括$GLOBALS,而print_r不检查递归。因此,你只是在一个无限循环中结束,即使是max_execution_time也无法拯救你。

也许如果你正在为一个使用ioncube作为保护的脚本开发扩展/插件,那么也许是问题所在,ioncube似乎停止了get_defined_vars(),作为防止反向工程的一部分。