2

我正在尝试在我的 php 中获取变量转储,所以我正在使用:

print_r(get_defined_vars());

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

4

4 回答 4

2

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

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

此外,通过插入一个echo "test";. 这应该显示出来,至少在源代码中。

于 2012-07-22T22:06:59.237 回答
2

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

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

查看:

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

清除上游错误后,您应该能够看到输出。

于 2012-07-22T22:09:24.750 回答
2

get_defined_vars包含$GLOBALS在其返回的变量中,并且print_r不检查递归。因此,您只是在无限循环中结束,甚至max_execution_time无法将您从中拯救出来。

于 2012-07-22T22:19:18.823 回答
0

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

于 2018-09-21T13:03:23.290 回答