【问题标题】:Identifying mystery line break / char(#) / control characters for removal (via php)识别要删除的神秘换行符/char(#)/控制字符(通过 php)
【发布时间】:2012-02-17 14:13:59
【问题描述】:

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

我发现问题是在 WP 管理中使用标签 我尝试了以下方法:

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

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

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

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

【问题讨论】:

  • 您是如何/在哪里/在什么时候尝试进行这种清理的?你在使用 WP-filter 钩子吗?
  • 你的替代品怎么样?你在做str_replace('\n','',$subject);吗?因为单引号将表示两个文字字符 ` and n. If you are, then just use double quotes. str_replace("\n",'',$subject);`
  • @nikc.org 正在清理 json 输出文件。
  • @confused-demon 完全一样吗?我也试过 nl2br 没有变化。
  • 好的,那你是如何生成 JSON 文件的呢?使用完整的流程更新您的问题,这将有助于确定可能出现问题的阶段。

标签: php string json wordpress str-replace


【解决方案1】:

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

【讨论】:

  • 我使用链接的网络应用程序检查了提要,它报告没有 BOM。非常感谢您的提示,我以前没有听说过。
【解决方案2】:

经过大量测试,我概述了所有已知事实:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 2017-01-30
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多