Laravel / PHP str_replace 函数中的单引号显示笑脸图像
Single quotes in Laravel / PHP str_replace function to show smiley images
我已经在 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 中查看了很多关于单引号处理的文章,但我没有找到解决我的问题的正确答案:所以我们开始吧:
我有以下功能来替换笑脸符号的快捷方式(缩短版),这在我的旧版本和旧服务器(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 你是对的,我只是用错误的引号引起来了。