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
           ':&#39;(' // 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 你是对的,我只是用错误的引号引起来了。