为什么str_replace不会替换问号?

时间:2011-07-16 05:19:33

标签: php preg-replace str-replace

我有一个带有问号('?')的字符串,我想用可解析的东西替换它。

然而str_replace不会替换任何?我的字符串中的字符......

$str = str_replace('?', 'replacement', $str);

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

该代码确实用替换字替换了问号,这意味着不是您正在使用的代码,或者您的字符串中的内容不是问号。

PHP的字符串函数只能在latin1(iso-8859-1)编码的字符串上正确运行。在许多编码中,可能有许多代码点对应于在视觉上看起来像问号的字形,但与ASCII不同?


$str = "Hello? Anyone home?";
$str = str_replace('?', 'replacement', $str);
echo $str;

输出:

  

Helloreplacement任何家庭安置

答案 1 :(得分:0)

这会将?替换为space。这可能会对你有帮助。

<?php
$str = "this ? does ? indeed ? work";
$char='';
$str1 = str_replace('?',$char,$str);
echo $str1;
?>