【问题标题】:array of special characters to replace in a text, php, json要在文本、php、json 中替换的特殊字符数组
【发布时间】:2010-10-28 22:11:26
【问题描述】:

我有一个巨大的文本,我不断地以 json 格式获取。当我在 json 中接收它们时,对于某些特殊字符,例如 '" &copy,我会以不同的方式接收它们。我正在使用 php 和 json 将 json 转换为 html。例如,我接收

' as \c101d(单引号) " 作为 \c201d (开场白) " 作为 \c202d(结束引号)

我打算将所有 ', ' 保存到一个数组中,并使用该数组将文本中的 \c101d 值替换为 ' 或类似的东西,以便更容易在一个命令中检查整个文本,替换所有特殊字符都正确并在我的网页上正确显示。

也许有些像 $arr=array("\c101d"=>"'", "\c202d"=>""") 然后在 $text 变量上调用这个数组来检查与数组并进行字符串替换。 我有这个想法,但在编码方面我如何实现这一目标?感谢任何帮助。

【问题讨论】:

  • 你打算对文本做什么?
  • 我将在 html 页面中显示它,但由于字符是 \c101d,它在 html 页面上显示得很奇怪。
  • 也许 NYTimes 提要的编码类似于 UTF-8,而您的网络将其显示为 ISO 8859-1

标签: php arrays json


【解决方案1】:

已解决

这段代码解决了所有问题,包括 ' 、 " 和所有其他奇怪的字符。

$newtext=mb_convert_encoding($text,  'HTML-ENTITIES','UTF-8');

【讨论】:

    【解决方案2】:

    ¿您是否将json_encode() 与不同的选项标志一起使用?

    对于子字符串替换,您应该使用strtr()

    【讨论】:

      【解决方案3】:

      str_replace 应该做你想做的事。

      此函数返回一个字符串或一个数组,其中 subject 中所有出现的 search 都替换为给定的 replace 值。

      str_replace 函数将数组作为搜索和替换的可能参数,因此您可以执行以下操作:

      $search = array( '\'' , '"', ...);
      $replace = array( '\c101d', '\c201d', ...);
      $text = str_replace($search, $replace, $text);
      

      【讨论】:

      • 嗯....我试过你给的,但它似乎没有改变任何东西。好吧,这就是正在发生的事情...当我查看返回的 json 时,我可以看到特殊字符是 \u201c 但在 html 页面上它显示为“并且我无法替换它们” !仅供参考,我正在以 JSON 格式取回 NYTIMES 最近的新闻 API。显然我已经互换了 $search 和 $replace 因为你的代码正在做我正在尝试做的代码。
      猜你喜欢
      • 2017-04-15
      • 1970-01-01
      • 2012-04-06
      • 2022-11-10
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      相关资源
      最近更新 更多