【问题标题】:PHP XML or Json Choices on webpage网页上的 PHP XML 或 Json 选择
【发布时间】:2013-05-05 05:31:40
【问题描述】:

我正在使用 get 参数,因此用户可以选择 XML 输出或 Json。 根据他们的选择,它在同一页面上运行 json 函数或 xml 函数。 然而,尽管我做出了努力,即使在选择 json 时从未告诉代码进入 XML 函数,它仍然在 XML 中运行 header("Content-type: text/xml");功能。它不运行其他任何东西。 问题在于它尝试写入时:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT"); 
header("Cache-Control: no-cache, must-revalidate"); 
header("Pragma: no-cache");
header("Content-type: application/json");

在 json 函数中,它给了我一个标头已被更改的错误(即使我从未执行过 XML 函数。 我不得不通过制作一个单独的网页来解决这个问题,一个用于 json,一个用于 xml。但是,我希望他们转到相同的 URL 并获取 get 以选择是否需要 json 或 XML 而没有任何错误。 有没有更简单的方法来做到这一点?

【问题讨论】:

  • 我们可能需要查看您的完整代码,而不仅仅是header 调用,但如果您在header 方法调用之前尝试输出内容,通常会出现错误。例如。 JSON 标头之前的 xml 内容
  • 您需要提供您收到的确切错误消息。我以某种方式假设您告诉您得到的错误不是真正的错误。请仔细检查。

标签: php xml json


【解决方案1】:

检查标题上的文档。你可能需要设置

header("Content-type: application/json", true);
                                         ####

以确保您的新内容类型标头替换可能已经设置的 Content-type 标头。 http://php.net/header

【讨论】:

  • 我不认为这里是这种情况,但更清楚地说明了我认为您想说的话。 (已发送的标头无法再更改)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-04
  • 2012-03-21
  • 2017-04-21
  • 2012-03-16
  • 1970-01-01
相关资源
最近更新 更多