【问题标题】:Can't replace × by str_replace不能用 str_replace 替换 ×
【发布时间】:2017-03-19 12:32:46
【问题描述】:

这是我的代码:

$content = str_replace("×", "x", $content);

我可以替换任何单词但我不能替换诸如×之类的问题如何解决这个问题?

要知道 × 不是 x 字母,它是一个符号。

【问题讨论】:

  • 但它奏效了。
  • @Mohammad 它适用于任何符号,是的,除了 × 不知道为什么你可以尝试用任何东西替换 ×?
  • 上面的 sn-p 对我有用
  • @MagnusEriksson 我会尝试其他解决方案来解决我的问题我可以替换任何符号,除了 × 不知道出了什么问题,但感谢您抽出宝贵时间 :)

标签: php


【解决方案1】:

您正在尝试做的事情称为音译,这是一个类似的线程: How to convert special characters to normal characters?

这可能有效:

$content = iconv('utf-8', 'ascii//TRANSLIT', $content);

我不确定为什么您的方法不适合您,因为我在 phpfiddle.org 上对其进行了测试,并且可行:

<?php
$content = "some string with × symbol";
$content = str_replace("×", "x", $content);
echo $content;
?>

我也测试过 preg_replace 开启: http://www.phpliveregex.com 这有效:

preg_replace("/×/", "x", $input_lines);

当字符串没有打算由 PHP 解释的特殊字符时,最好将字符串用单引号括起来。如果这个问题是由于 PHP 出于某种原因解释了 × 符号,这将解决它:

$content = str_replace('×', "x", $content);

【讨论】:

  • 单引号内的特殊字符根本不会被解析(反斜杠与否)。它们将保持原样。在这种情况下,我真的不明白使用preg_replace() 而不是str_replace() 的意义。仅替换文字字符串时,正则表达式会带来什么(开销除外)?
  • 谢谢,我通过检查页面源解决了我的问题,然后我发现它显示为 ×所以我添加 $content = str_replace("×", "x", $content);它现在正在工作。
  • Magnus:关于 preg_replace 的观点,玩弄灵活性可以帮助缩小范围。关于引号,这就是我的意思,当不打算解析字符串时,应该使用单引号。我的意思是反斜杠本身是唯一被解析的东西,即 $str = '\';将导致解析错误,因为反斜杠将转义右引号。
猜你喜欢
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 2016-01-11
  • 1970-01-01
相关资源
最近更新 更多