我的网站中有几种语言,但下面的代码不适用于中文。屏幕上出现所有其他文本,因此输出没有问题。我想知道str_replace()在中文文本中使用时是否对%s过敏!只替换%s不起作用。
注意:%(任何字符无关紧要)都不起作用。
知道为什么吗?
由于
$lang = "%s的字段是必需的。";
echo $message = str_replace('%s', '123', $lang);
//Should output 123的字段是必需的。but instead %s的字段是必需的。appears again.
echo $message = str_replace('的字段是必需的', '123', $lang);
//This outputs %s123. which is fine
答案 0 :(得分:6)
您的%
不是“正确的”%。看看这个:
$lang = '%s的字段是必需的。';
而不是
$lang = '%s的字段是必需的。';
如果你仔细观察这两个,你会发现“%”字符是不同的。
因此,您的字符串$lang
有一个%
,而您的str_replace
正在寻找%
。