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)
上一篇 2022年5月10日 下午2:40
下一篇 2022年5月10日 下午3:00


相关推荐

  • bcdboot(引导修复工具) 命令行工具使用方法

    bcdboot(引导修复工具) 命令行工具使用方法BCDboot 是一种用于快速设置系统分区或修复系统分区上的启动环境的工具 系统分区是通过从已安装的 Windows R 映像复制一小部分启动环境文件来设置的 BCDboot 还会在系统分区上创建引导配置数据 BCD 存储 该存储中包含一个新的引导项 可让您引导到已安装的 Windows 映像 软件名称 bcdboot exe 引导修复工具软件大小 68KB 更新时间 2015 08 06

    2026年3月17日
    2
  • Hunyuan-MT 7B保姆级教程:从部署到实战翻译全流程

    Hunyuan-MT 7B保姆级教程:从部署到实战翻译全流程

    2026年3月13日
    2
  • c语言浮点数输出格式的控制,c语言输出格式控制「建议收藏」

    c语言浮点数输出格式的控制,c语言输出格式控制「建议收藏」1.转换说明符%a(%A)浮点数、十六进制数字和p-(P-)记数法(C99)%c字符%d有符号十进制整数%f浮点数(包括float和doulbe)%e(%E)浮点数指数输出[e-(E-)记数法]%g(%G)浮点数不显无意义的零”0″%i有符号十进制整数(与%d相同)%u无符号十进制整数%o八进制整数e.g.0123%x(%X)十六进制整数0f(0F)e.g…

    2022年7月24日
    10
  • android 定时器的实现比较

    android 定时器的实现比较第一种,Handler+threadpublicclassMainActivityextendsActivity{TextViewtextView;inttime;Handlerhandler=newHandler(){@OverridepublicvoidhandleMessage(Messag

    2022年7月25日
    11
  • DML语句(delete,insert,update)

    DML语句(delete,insert,update)DML DataManipula 数据操作语言 insert 将记录插入到数据库 update 修改数据库的记录 delete 删除数据库的记录 commit 提交数据 savepoint 设置回滚点 rollback 回滚执行 DML 命令如果没有提交 将不会被其他会话看到 除非在 DML 命令之后执行了 DDL 命令或 DCL 命令 或用户退出会话 或终止实例 此时系统会自动发出 commit 命令 使未交的 DML 命令提 DQL select 查询语句 DML 数据操作语言 DDL 数据定义语言 DCL

    2026年3月26日
    3
  • 一个汉字占多少个字节?_字符和字节的关系

    一个汉字占多少个字节?_字符和字节的关系一个汉字占多少个字节不同编码方式1个英文字母占的字节是不同的:1,ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。2,UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节3,Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节…

    2025年5月27日
    4

发表回复

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

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