【问题标题】:Wordpress strange text over the content of json-api pluginjson-api插件内容上的Wordpress奇怪文本
【发布时间】:2015-07-13 13:48:09
【问题描述】:

我使用 WordPress 4.1.1。 我尝试安装JSON API 插件。

奇怪的字母显示在 JSON 内容的上方。它们会在页面刷新后更新。

我试图在插件的代码下再带一个字母。这些字母出现在这些数字下面,那么是WordPress系统的问题吗?

请帮助我理解并删除它们,因为我无法解析我的 JSON。

在 localhost 上,它适用于相同的属性和数据...

字母是:7b00c、78709、6eb3d...它们会随着更新而变化..

【问题讨论】:

  • 在返回 json 的位置显示标题和代码
  • 内容类型:应用程序/json; charset=UTF-8
  • json-api 插件返回所有 json。但问题不在于插件,因为我输入了 echo "sadasd";在插件的代码下,所有的 json 数据都出现在下面......但不是这些字母 - frome above
  • 尝试在输出 json 之前清理输出缓冲区。如果这有帮助 - 在您的 php 文件中搜索任何回声或符号输出
  • ob_clean() 不要清除这些字母

标签: php json wordpress


【解决方案1】:

奇怪的字符大概是chunk-size

内容长度

当服务器端进程通过 HTTP 服务器发送响应时,数据通常会在传输到客户端(浏览器)之前存储在缓冲区中。如果整个响应及时适合缓冲区,服务器将在Content-Length: 标头中声明大小,并将响应原样发送给客户端。

分块传输编码

如果响应适合缓冲区,或者服务器在知道完整大小之前出于其他原因决定腾出缓冲区,它将改为以块的形式发送响应。这由 Transfer-Encoding: chunked 标头指示。每个块的前面都是十六进制的长度(后面是CRLF-pair)。响应的结束由0 块大小指示。具体语法如下。

解决方案

如果您自己解析 HTTP 响应,则需要考虑各种错综复杂的问题。分块编码就是其中之一。您需要检查 Transfer-Encoding: chunked 标头并通过解析和剥离 chunk-size 部分来组装响应。

使用诸如cURL 之类的库会容易得多,它会为您处理所有细节。

避免分块的一个技巧是使用HTTP/1.0 而不是HTTP/1.1 发送响应。在 HTTP/1.0 中,长度由 Content-Length: 标头指示,或通过关闭连接来指示。

语法

这是RFC 7230 - "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing"ABNF 表示法)中指定的分块正文的语法:

4.1. Chunked Transfer Coding 块体 = *块 最后一块 拖车部分 CRLF 块 = 块大小 [ 块扩展 ] CRLF 块数据 CRLF 块大小 = 1*HEXDIG 最后一个块 = 1*("0") [块扩展] CRLF 块数据 = 1*OCTET ;块大小的八位字节序列 拖车部分 = *( 标头字段 CRLF )

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2019-08-24
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多