美文网首页
PHP将字符串中的URL转换为可点击的链接

PHP将字符串中的URL转换为可点击的链接

作者: Firstmeet初见 | 来源:发表于2018-05-31 16:34 被阅读0次

PHP 7.0已经移除了eregi_replace方法,导致之前url或者email字符串使用eregi_replace转换的方法失效:

之前的老方法(php7.0已废弃)
function str2url($text)
{
    $text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)','<a class="str2url external" target="_blank" href="\1">\1</a>', $text);
    $text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)','\1<a class="str2url external" target="_blank" href="http://\2">\2</a>', $text);
    $text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})','<a class="str2url external" href="mailto:\1">\1</a>', $text);
    return $text;
}
现调整为(php7.0可用)
function str2url($str= '')
{
    if ($str== '' or !preg_match('/(http|ftp|www\.|@)/i', $str)) {
        return $str;
    }
    $lines = explode("\n", $str);
    $text  = '';
    while (list($k, $v) = each($lines)) {
        // replace links:
        $v = preg_replace("/([\t]|^)www\./i", "\\1http://www.", $v);
        $v = preg_replace("/([\t]|^)ftp\./i", "\\1ftp://ftp.", $v);
        $v = preg_replace("/(http:\/\/[^)!]+)/i", "<a class=\"str2url external\" target=\"_blank\" href=\"\\1\">\\1</a>", $v);
        $v = preg_replace("/(https:\/\/[^)!]+)/i", "<a class=\"str2url external\" target=\"_blank\" href=\"\\1\">\\1</a>", $v);
        $v = preg_replace("/(ftp:\/\/[^)!]+)/i", "<a class=\"str2url external\" target=\"_blank\" href=\"\\1\">\\1</a>", $v);
        $v = preg_replace("/([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})/i", "<a class=\"str2url external\" href=\"mailto:\\1\">\\1</a>", $v);
        $text .= $v . "\n";
     }
     return $text;
}

相关文章

  • PHP将字符串中的URL转换为可点击的链接

    PHP 7.0已经移除了eregi_replace方法,导致之前url或者email字符串使用eregi_repl...

  • simplexml_load_string的用法

    php中的simplexml_load_string函数将xml格式字符串转换为对应的SimpleXMLElem...

  • 2021-03-09算法打卡

    1、URL化URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并...

  • 3URL化-java实现

    第三题:URL化 URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字...

  • php 将json格式数据转换成数组的方法

    在PHP中可以使用json_decode()函数将JSON编码的字符串转换为适当的PHP数据类型。默认情况下,js...

  • leetcode-程序员面试金典刷题-URL化

    URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串...

  • URL化

    URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串...

  • leetcode9.回文数

    题目链接 题目描述: 思路一:将数字转换为字符串 方法很简单,将数字转换为StringBuilder的对象使用re...

  • PHP str_replace() 函数

    把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai":

  • 面试题 01.03. URL化

    题目描述: URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并...

网友评论

      本文标题:PHP将字符串中的URL转换为可点击的链接

      本文链接:https://www.haomeiwen.com/subject/tynqsftx.html