在插入数组之后:
$in_list = "'".implode("','",$array)."'";
$in_list
内容为:
'Robert','Emmanuel','José','Alexander'
现在,当我尝试用另一个字符串替换单词José
时,
str_replace("José","J",$in_list);
它没有获得新值,José
仍然存在。我错过了什么吗?提前完成。
答案 0 :(得分:6)
您是如何尝试更换字符串的? 以这种方式尝试时:
$in_list = str_replace("José","J",$in_list);
echo $in_list;
一切都应该正常。
请记住,该函数返回一个值。所以它返回一个新字符串。
答案 1 :(得分:1)
这应该有效。这取决于你的数组。
$str = array('Robert','Emmanuel','José','Alexander');
$str = implode(",", $str);
print str_replace('José', 'J', $str);
答案 2 :(得分:1)
我不确定发生了什么,它似乎对我有用。您使用的是哪个版本的PHP?
$in_list = "'".implode("','", array('Robert', 'Emmanuel', 'José', 'Alexander'))."'";
$replaced = str_replace("José", "J", $in_list);
//prints 'Robert','Emmanuel','J','Alexander'
echo $replaced;
答案 3 :(得分:1)
这对我有用,但看起来我做的与你有什么不同呢?
$array = array('Robert', 'Emmanuel', 'José', 'Alexander');
$in_list = "'".implode("','",$array)."'";
echo $in_list.PHP_EOL;
echo str_replace("José","J",$in_list).PHP_EOL;
<强>输出:强>
'Robert','Emmanuel','José','Alexander'
'Robert','Emmanuel','J','Alexander'
请注意,str_replace
不会在$in_list
本身执行替换,而是返回包含替换的字符串。
希望这有帮助!
答案 4 :(得分:1)
尝试$in_list = html_entity_decode((str_replace(htmlentities("José"),"J",htmlentities($in_list));
答案 5 :(得分:1)
你试过没有口音的单词吗?我会说你的字符集不匹配,例如$ in_list中的'José'是latin1字符集,而你的PHP源文件是UTF8。
如果是这种情况,您应该首先将PHP文件或变量转换为您要使用的字符集。
答案 6 :(得分:1)
自发猜测:这两个字符串不一样。我想一个“José”是源代码中硬编码的字符串,另一个是从数据库或浏览器中接收的。如果两个字符串的编码不相同,PHP将不会将它们标识为相同而不替换该字符。确保您的源代码文件以与您正在处理的数据相同的编码保存,最好都是UTF-8。