doukao8851 2014-08-03 10:05
浏览 72

情感,链接,保留换行符和wordwrap的单一功能

Hello all i am working on a project where i need to have find any url/links/emails, preserve the line brakes,replace the special symbol with emotions and also wordwrap. so i was wondering that if all these things are possible with only a single function or not currently i am using this function for emotions

function emotions($text) {
$icons = array(
        ':)'    =>  '<img src="smiles/smilee.png" class="icon_smile" title="smiling :)"/>',
        ':d'    =>  '<img src="smiles/lol.gif" class="icon_smile" title="Laughing :d"/>',
        ';)'    =>  '<img src="smiles/wink.png" class="icon_smile" title="Wink ;)"/>',
        ':p'    =>  '<img src="smiles/tongue.png" class="icon_smile" title="Tounge :p"/>',
        ':('    =>  '<img src="smiles/sad.png"  class="icon_smile" title="Sad face :("/>',
        ':o'    =>  '<img src="smiles/shock.png" class="icon_smile" title="Shocking :o"/>',
        ':|'    =>  '<img src="smiles/straight.png" class="icon_smile" title="straight :|"/>',
        '<3'   =>  '<img src="smiles/heart.png" class="heart" title="Heart <3"/>',
        '::s'   =>  '<img src="smiles/sexy.png" class="icon_smile" title="Sexy <s"/>',
        ':D'   =>  '<img src="smiles/lols.gif" class="icon_smile" title="lol :D"/>',

        ':(('   =>  '<img src="smiles/cry.gif" class="icon_smile" title="crying :(("/>',
        ':X'   =>  '<img src="smiles/silent.gif" class="icon_smile" title="sealed lips :X"/>',
        ':B'   =>  '<img src="smiles/bla.gif" style="width:29px;vertical-align:middle;" title="bla bla :B"/>',
        ':C'   =>  '<img src="smiles/coll.gif" style="width:24px;vertical-align:middle;" title="coll me :C"/>'
);
return strtr($text, $icons);
}

?>

and i know that for wordwrap i can use the function wordwrap and for line brakes nl2br but i want all these in a single function please help me with this

  • 写回答

2条回答 默认 最新

  • douhu2525 2014-08-03 10:11
    关注

    You could use str_replace(), array_keys() and array_values().

    function emotions($text) {
        $icons = array(
            ':)'    =>  '<img src="smiles/smilee.png" class="icon_smile" title="smiling :)"/>',
            ':d'    =>  '<img src="smiles/lol.gif" class="icon_smile" title="Laughing :d"/>',
            ';)'    =>  '<img src="smiles/wink.png" class="icon_smile" title="Wink ;)"/>',
            ':p'    =>  '<img src="smiles/tongue.png" class="icon_smile" title="Tounge :p"/>',
            ':('    =>  '<img src="smiles/sad.png"  class="icon_smile" title="Sad face :("/>',
            ':o'    =>  '<img src="smiles/shock.png" class="icon_smile" title="Shocking :o"/>',
            ':|'    =>  '<img src="smiles/straight.png" class="icon_smile" title="straight :|"/>',
            '<3'   =>  '<img src="smiles/heart.png" class="heart" title="Heart <3"/>',
            '::s'   =>  '<img src="smiles/sexy.png" class="icon_smile" title="Sexy <s"/>',
            ':D'   =>  '<img src="smiles/lols.gif" class="icon_smile" title="lol :D"/>',
            ':(('   =>  '<img src="smiles/cry.gif" class="icon_smile" title="crying :(("/>',
            ':X'   =>  '<img src="smiles/silent.gif" class="icon_smile" title="sealed lips :X"/>',
            ':B'   =>  '<img src="smiles/bla.gif" style="width:29px;vertical-align:middle;" title="bla bla :B"/>',
            ':C'   =>  '<img src="smiles/coll.gif" style="width:24px;vertical-align:middle;" title="coll me :C"/>'
        );
        return str_replace(array_keys($icons), array_values($icons), $text);
    }
    

    You should use nl2br and additional functions to the result of the function. But of course you can use these functions in this function, too.

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?