php 替换字符串中的所有url 为a标签「建议收藏」

php 替换字符串中的所有url 为a标签「建议收藏」functionformatUrlsInText($str){preg_match_all(‘/((http|ftp|https):\/\/)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/’,$str,$arr);if(!$arr[0]){…

大家好,又见面了,我是你们的朋友全栈君。

function formatUrlsInText($str){
        preg_match_all('/((http|ftp|https):\/\/)?([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/',$str,$arr);
        if(!$arr[0]){
            return $str;
        }
        $replaceOnce = function($needle,$replace,$haystack){
            $pos = strpos($haystack, $needle);
            if($pos===false){return $haystack;}
            return substr_replace($haystack,$replace,$pos,strlen($needle));
        };
        $_tmp = [];
        foreach($arr[0] as $v){  
            $tmp = explode($v,$str);
            $_tmp[]=$tmp[0];
            $_tmp[]="<a href='{$v}' target='_blank'>{$v}</a>"; 
            $str = $replaceOnce($tmp[0].$v,'',$str);
        }
        return join($_tmp, ' ') . $str; 
    }
$str = "你好http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-99072-bM4IbtB2YfATabC70Q4Q-passport.csdn.net呵呵哒www.qq.com嗯嗯baidu.com";
echo urlToLink($str);  

结果:
你好 http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-99072-bM4IbtB2YfATabC70Q4Q-passport.csdn.net 呵呵哒www.qq.com 嗯嗯baidu.com

原文地址:
discoverkaka的博客
https://blog.csdn.net/discoverkaka/article/details/51819827

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142551.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • java axis_Java 使用Axis实现WebService实例

    java axis_Java 使用Axis实现WebService实例在上一篇WebService实例中,基于jdk1.6以上的javax.jws发布webservice接口。这篇博文则主要用eclipse/myeclipse使用axis插件进行发布和调用WebService。1.下载axis,并解压到tomcat/webapps目录下2.在tomcat部署axis2启动tomcat,可以看到多了个axis2文件在浏览器输入:http://localho…

    2022年7月21日
  • pycharm安装pyside2_python pycharm安装

    pycharm安装pyside2_python pycharm安装一、Python IDE安装 python的IDE软件多种多样,可自行选择;下面是来自知乎9种ide的推荐:(https://zhuanlan.zhihu.com/p/26146374 点击打开链接) pycharm 下载地址:https://www.jetbrains.com/pycharm/download/#section=windows1.首先从网站下载pycharm:…

    2022年8月29日
  • iphone android换机助手下载,腾讯换机助手手机最新版 目前最好用的安卓/苹果一键换机工具…

    iphone android换机助手下载,腾讯换机助手手机最新版 目前最好用的安卓/苹果一键换机工具…换机助手软件介绍换机助手是腾讯开发的一款跨平台手机资料迁移工具,它可以在安卓与安卓,苹果与苹果,安卓与苹果手机之间进行数据迁移,安卓手机可以直接在下面下载APP,而苹果手机则需要在自带的APPSTORE中搜索“换机助手”下载安装,这也是非常实用的一款程序了!换机助手软件功能:该软件可以通过调用手机创建热点,进行两部手机匹配互联,零消耗网络流量传输手机资料。目前已支持安卓Android与苹果iOS…

    2022年5月26日
  • datagrip激活码2021_在线激活

    (datagrip激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

    2022年3月21日
  • python 访问LDAP服务器「建议收藏」

    python 访问LDAP服务器「建议收藏」最近在做confluence数据迁移和升级。由于公司是使用LDAP认证登录的,在安装升级之后发现confluence自动从LDAP把全部用户名自动全部导入到了用户表(cwd_users)。可能是为了细化权限控制。但这样就问题就来了,全部用户名又没有按部门进行区分,在细分权限时也不好控制。没办法,只好写个简单的python脚本从LDAP服务器重新取一次,把用户按部门分类,好在后面做细分权限时控

    2022年5月15日
  • css怎么隐藏滚动条「建议收藏」

    css怎么隐藏滚动条「建议收藏」法一:①使用伪类隐藏滚动条(仅限Chrome与Safari)②scrollbar-width:none;(仅限firefox)③-ms-overflow-style:none;(仅限IE10+)/*隐藏滚动条*/.element{width:100%;height:72px;box-sizing:border-box;padding-top:16px;overflow-x:scroll;/*设置溢出滚动*/white-spa

    2022年10月23日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号