识别神秘线路中断/字符(#)/控制字符以便删除(通过php)

时间:2012-02-17 14:14:00

标签: php string json wordpress str-replace

我有一个客户端刚刚将一个非常大的,完善的wordpress网站移动到新主机。他通过一个已经停止验证(杀死移动应用程序)的插件提供了一系列JSON api。

我已经确定问题是在WP管理员中使用标签< a或< img之后,添加了一个神秘的换行符。它不存在于WP html wyswig中 - 但页面的html src也有换行符。

我尝试了以下内容:

  • 替换:\ n,\ r,\ r \ n,char(10)(按各种顺序) - 无变化
  • 替换:不同的字符(#) - 无变化
  • 使用BBEdit来Zap Gremlins - 没有变化
  • 在VI中打开以确保换行符是文件的一部分(它们是 - $无处不在)

我愿意接受有关识别和消除这些烦恼的方法的建议。

更新:输入全部后,我意识到我应该使用HexEditor进行检查。角色是0A。

编辑:编辑,因为我的部分问题格式不正确。该字符将在JSON输出之前添加。

2 个答案:

答案 0 :(得分:0)

这可能是UTF8-BOM的问题吗?见http://www.w3.org/International/questions/qa-utf8-bom.en.php

答案 1 :(得分:0)

经过大量测试后,我概述了每个已知的事实:

  • 这不是遗产,
  • 停用所有插件无法解决,
  • 这不是重写规则,
  • 垃圾不是垃圾......
  • 它在同一个wp版本的子博客上重复了这个问题,
  • 根目录下的文档没有表现出这种行为,
  • 它似乎发生在渲染之前,但在json_encode之后,
  • 只发生在特定的HTML标签上(img,a,div,span(实际上是具有href或类等属性的标签))

毕竟我们决定它必须是一个插件并经历了另一轮检查。

事实证明,在停用检查期间,插件wp-minify结合了不良测试。响应被缓存,我认为没有变化。