我已经检查了这里关于 PHP 中单引号处理的许多文章,但我没有找到解决我的问题的正确答案:所以我们开始:
我有以下函数来替换笑脸的快捷方式(缩短版本),这在我的旧版本和旧服务器(Apache,MySQL)上工作,但在新服务器(nginx,Laravel,PHP,MySQL)上它替换除 :'(
public static function addSmileys($text){
return str_replace(
array(
":-)",
":'("
),
array(
"<a title=':-)'><i class='smiley smile'></i></a>",
"<a title=\":'(\"><i class='smiley crying'></i></a>"
),
$text);
}
我有从旧系统迁移的旧数据,如果我只修改新输入,这将无济于事。字符集可能有问题,但我真的不知道
最佳答案
我尝试使用 ":\'("
,但没有成功。':\'('
工作正常。
现在这是正确的函数:
public static function addSmileys($text){
return str_replace(
array(
":-)",
':\'(', // added slash and single quotes, slash double quotes not working
':'(' // due to previous move, some crying smileys looked like this
),
array(
"<a title=':-)'><i class='smiley smile'></i></a>",
"<a title=\":'(\"><i class='smiley crying'></i></a>",
"<a title=\":'(\"><i class='smiley crying'></i></a>"
),
$text);
}
谢谢@CD001,你是对的,我只是用了错误的引号。
关于php - Laravel/PHP str_replace 函数中的单引号显示笑脸图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739856/