我在两个页面之间存在不一致。PHP 正在转储变量,我需要能够在没有 HTML 渲染的情况下查看变量中的原始数据,从而呈现其中可能存在的任何内容。
渲染后的版本是 100% 相同的,但是当我使用字符串和 hash_hmac 时,它们会得到不同的结果哈希。
有没有办法转储这些字符串并查看原始数据?
几个选项浮现在脑海中。任何一个
header('Content-Type: text/plain');
<pre>
元素中。您可能还对xdiff感兴趣。
strip_tags
在php中尝试函数这将删除所有标签
或者
用这个
header('Content-Type: text/plain');
不行,我试过了。我正在制作一个 Amazon FPS 系统,但签名无效,因为他们在发布请求中硬渲染了新行以进行签名。我建立的系统有空间。发布后,我将结果转储到数据库中,并在数据库中说它有换行符。
答: 获取字符串并将它们转储到数据库中。然后使用数据库查看差异。这是我发现解决问题的唯一方法。
我使用此函数将数组值打印到屏幕上:
function PrintArray($array)
{
echo " <pre>";
print_r($array);
echo " </pre> ";
}
例如,要访问发布的数据:
if ($submit)
{
if ($debug)
{
printarray($_POST);
}
}
其余的脚本数据(没有立即通过标记显示的数据)需要在 $debug 条件语句中回显/打印到文件中。
您应该构建您的应用程序,以便在可能发现潜在问题的地方包含调试语句。在页面顶部,声明 $debug = true; (或在不使用时将其设置为 false)。
编辑:
顺便说一句,在我的环境中,如果脚本是从生产中提供的(以编程方式检测到),则调试语句将被关闭。它们只能在测试中显示,并且当 $debug 设置为 true 时。正如评论者在下面所写,您不应在生产/实时应用程序中显示(或允许错误地显示)调试信息。
最好将调试信息写入 Web 根目录下的文件。