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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vue关闭eslint的方法

    vue关闭eslint的方法只需要在vue.config.js文件进行如下配置就可以(如果没有这个文件,在项目的根目录下新建一个这样的文件就可以)module.exports={lintOnSave:false}

  • Java标识符定义规则

    Java标识符定义规则标识符定义、作用:java标识符是用来给类、对象、方法、变量、接口和自定义数据类型命名的。java语言中规定标识符:由大小写字母、数字、下划线_、和美元符号$组成,但不能以数字开头。标识符不能使用java中的关键字。…

  • Drupal 默认安装的目录结构

    Drupal 默认安装的目录结构文件夹目录中的每一元素的详解如下:includes:包含了Drupal常用的函数库。misc:用来存储Drupal安装中可用的JavaScript,和其它各种图标和图片文件。modules:包含了所有核心模块,其中一个模块对应一个文件夹。最好不要乱动这个文件夹(包括profiles和sites以外的其它目录)下面的任何东西,你要添

  • java笔试题库及答案,看完必懂

    java笔试题库及答案,看完必懂阿里面试总结1.一面首先确认对阿里的意向度;其次面试官会针对你曾经做过的项目来做具体技术的交流,你对项目细节是不是掌握到位,以及java技术基础和原理掌握程序,比如并发编程以及数据库和JVM三个方面,也会交流到分布式、线程池的实现等等(重点考察有没有深入钻研技术和技术上的亮点);2.二面技术面,根据项目深入的了解技术实力,了解你的知识面、问题解决能力以及技术灵活运用能力,也通过这一过程考察团队合作能力、学习主动性和创新性,可以挑选2-3个做过的有典型性的项目做一个仔细技术回顾和自己独到的理解(这是加

  • VSCODE 打造完美java开发环境「建议收藏」

    VSCODE 打造完美java开发环境「建议收藏」vscodeJava开发环境配置(此博客已更新,之前的排版不利于阅读)使用vscode后,你可能无法忍受eclipse:)最后更新时间:2018-07-01(博客地址)系统需安装jdk1.8,配置好环境变量JAVA_HOME打开vscode,安装java相关插件LanguagesupportforJava™forVisualStud…

  • maria和mysql_mysql为什么没有淘汰

    maria和mysql_mysql为什么没有淘汰mysql:driver驱动类为:com.mysql.jdbc.Driverurl为:jdbc:mysql://localhost:3306/testmariadbdriver驱动类为:org.mariadb.jdbc.Driverurl为:jdbc:mariadb://localhost:3306/test

    2022年10月28日

发表回复

您的电子邮箱地址不会被公开。

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