4

我在两个页面之间存在不一致。PHP 正在转储变量,我需要能够在没有 HTML 渲染的情况下查看变量中的原始数据,从而呈现其中可能存在的任何内容。

渲染后的版本是 100% 相同的,但是当我使用字符串和 hash_hmac 时,它们会得到不同的结果哈希。

有没有办法转储这些字符串并查看原始数据?

4

4 回答 4

5

几个选项浮现在脑海中。任何一个

  • 发送header('Content-Type: text/plain');
  • 或将转储包装在<pre>元素中。
  • 或者只是查看也将具有原始输出的源代码。

您可能还对xdiff感兴趣。

于 2012-10-08T09:32:48.293 回答
2

strip_tags在php中尝试函数这将删除所有标签

或者

用这个

header('Content-Type: text/plain');
于 2012-10-08T09:32:44.317 回答
0

不行,我试过了。我正在制作一个 Amazon FPS 系统,但签名无效,因为他们在发布请求中硬渲染了新行以进行签名。我建立的系统有空间。发布后,我将结果转储到数据库中,并在数据库中说它有换行符。

答: 获取字符串并将它们转储到数据库中。然后使用数据库查看差异。这是我发现解决问题的唯一方法。

于 2012-10-08T09:40:09.953 回答
0

我使用此函数将数组值打印到屏幕上:

function PrintArray($array)
{
    echo " <pre>";
    print_r($array);
    echo " </pre> ";
}

例如,要访问发布的数据:

if ($submit)
{
  if ($debug)
  {
    printarray($_POST);
  }
}

其余的脚本数据(没有立即通过标记显示的数据)需要在 $debug 条件语句中回显/打印到文件中。

您应该构建您的应用程序,以便在可能发现潜在问题的地方包含调试语句。在页面顶部,声明 $debug = true; (或在不使用时将其设置为 false)。

编辑:

顺便说一句,在我的环境中,如果脚本是从生产中提供的(以编程方式检测到),则调试语句将被关闭。它们只能在测试中显示,并且当 $debug 设置为 true 时。正如评论者在下面所写,您不应在生产/实时应用程序中显示(或允许错误地显示)调试信息。

最好将调试信息写入 Web 根目录下的文件。

于 2012-10-08T10:30:26.623 回答