【问题标题】:PHP str_replace not working when encounter apostrophe遇到撇号时PHP str_replace不起作用
【发布时间】:2017-03-07 15:02:11
【问题描述】:

我想在一个字符串上做一个 str_replace。 字符串是“Qualité de l'air”,修改后的字符串应该是“Qualitdelair”。

我的代码是:

$string = "Qualité de l'air";
$newString = str_replace(array("é", " ", "'"), "", $string);

我也试过了:

$string = "Qualité de l'air";
$newString = str_replace(array("é", " ", "\'"), "", $string);

和:

$string = "Qualité de l'air";
$newString = str_replace(array("é", " ", "'"), "", $string);

我不知道为什么它不起作用。

【问题讨论】:

  • 修改后的字符串应该是什么?
  • $newString 应该是“Qualitdelair”
  • Your code works。您是否在该代码上方的某处使用了htmlentities()?试试$newString = str_replace(array("é", " ", "'"), "", html_entity_decode($string));
  • 这可能会起作用 array("è", " ", "'")。
  • 在 php.net/manual/en/ref.mbstring.php 他们说:请注意,在 cmets 中关于 mb_str_replace 的所有讨论都是毫无意义的。 str_replace 适用于多字节字符串。此外,它不在目录中

标签: php string str-replace


【解决方案1】:

您似乎有一些特殊字符编码为实体。

使用html_entity_decode() 将它们还原为文字字符,然后运行str_replace

$newString = str_replace(array("é", " ", "'"), "", html_entity_decode($string));

【讨论】:

    猜你喜欢
    • 2014-07-22
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    相关资源
    最近更新 更多