douba05167 2013-07-25 18:46
浏览 28
已采纳

正则表达式没有得到逗号,加上和ur在url的[重复]

This question already has an answer here:

I am using this regex:

$string = preg_replace("~(?!(?:https?://(?:www\.)?|www\.)(?:youtube\.com))(?:https?://(?:www\.)?|www\.)[\w./=?#-%:-]+~i",
                       '<a target="_blank" href="$0">$0</a>', $string);

But I can't get it to show the link here as clickable text:

http://2.bp.blogspot.com/_mGMUxSe_j0I/R24t5bmY2nI/AAAAAAAAAs4/ndqvaJ1Z-oY/s400/chernobyl+-+multiple+sclerosis.jpg

It just makes a link until the +-+, where it stops makin it clickable. It becomes plain text once again.

http://chornobyl.in.ua/wp-content/uploads/photo-wolf-640×250.jpg

This don't show the things after 640 in a link (so does not get the x).

If I add a + or a x in [\w./=?#-%:-], it gets my whole </p> tag in which the link is wrapped. I honestly don't know what to do. Can somone help me out?

</div>
  • 写回答

1条回答 默认 最新

  • douyan2970 2013-07-25 18:52
    关注
    function superLinks($text)
    {
        $ret = ' ' . $text;
    
        // http:// & https://
        $ret = preg_replace("#(^|[
     ])([\w]+?://[^ \"
    \t<]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
        // www & ftp
        $ret = preg_replace("#(^|[
     ])((www|ftp)\.[^ \"\t
    <]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
        // mail
        $ret = preg_replace("#(^|[
     ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret);
        // youtube
        $ret = preg_replace("#(^|[
     ])((youtube)\.[^ \"
    \t<]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
    
        $ret = substr($ret, 1);
    
        return $ret;
    }
    

    EDIT: Better solution Turn Plain Text URLs into Active Links using PHP

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图
  • ¥15 无线移动边缘计算系统中的系统模型
  • ¥15 深度学习中的画图问题
  • ¥15 java报错:使用mybatis plus查询一个只返回一条数据的sql,却报错返回了1000多条