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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python操作windows窗口获取窗口句柄「建议收藏」

    python操作windows窗口获取窗口句柄「建议收藏」python获取窗口句柄在Windows下获取窗口句柄时操作系统版本和软件版本对获取有影响,就会出现在本地调试正常的程序,交付使用的时候报错。查看windows所有可显示的窗口句柄及窗口名称。#-*-coding:utf-8-*-“””FileNamewindows_guiCreatedon2019-11-06@author:jj”””importwin…

    2022年7月14日
    38
  • BCGControlBar31 GUI Professional Crack

    BCGControlBar31 GUI Professional CrackBCGControlBarProforMFCversionsΩ578867473Version31.3.Released06/15/2021AnewclassCBCGPPropertyManager(seescreenshot)implementsaneasyandefficientwaytocreateyourapplicationproperties(options)fromXMLfile,bindpropertiestoCBCGPPr.

    2022年10月22日
    0
  • [ACM] POJ 1442 Black Box (堆,优先队列)

    [ACM] POJ 1442 Black Box (堆,优先队列)

    2022年1月31日
    33
  • java inputstream和outputstream_java runnable

    java inputstream和outputstream_java runnable首页>基础教程>IO流>InputStream类JavaInputStream类java.io.InputStream类是所有JavaIO输入流的基类,它是以字节为单位的输出流。定义publicabstractclassInputStreamextendsObjectimplementsCloseable此抽象类是表示字节输入流的所有类的超类。需…

    2022年9月21日
    0
  • matlab模糊控制工具箱使用教程_模糊pid控制原理

    matlab模糊控制工具箱使用教程_模糊pid控制原理Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器。1、模糊控制工具箱使用首先我们在Matlab的命令窗口(commandwindow)中输入fuzzy,回车就会出来…

    2022年8月30日
    0
  • slam技术原理_SRAM特点

    slam技术原理_SRAM特点SLAM是Simultaneouslocalizationandmapping缩写,意为“同步定位与建图”,主要用于解决机器人在未知环境运动时的定位与地图构建问题,为了让大家更多的了解SLAM,以下将从SLAM的应用领域、SLAM框架、SLAM分类(基于传感器的SLAM分类)来进行全面阐述,本文仅对没有接触过SLAM的新人进行的科普…

    2022年10月1日
    0

发表回复

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

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