PHP文本路径转换为链接文字

Posted 自留记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP文本路径转换为链接文字相关的知识,希望对你有一定的参考价值。

<?php
/**
* 文本路径转换为有链接的文字
* @param string $str 转换内容
* @return string
*/
function urlToLink($str) { 
    $arr = array("www." => "http://www."); 
    $str = strtr($str, $arr); 
    $arr = array("http://http://" => "http://"); 
    $str = strtr($str, $arr); 
    $str2 = explode("http://", $str); 
    for ($n = 1; isset($str2[$n]); $n ++) { 
        $str3 = explode(".", $str2[$n]); 
        if (isset($str3[1])) { 
            $str4 = explode("www.", $str2[$n]); 
            if ((isset($str4[1]) && isset($str3[2])) || !isset($str4[1])) { 
                $length = strlen($str2[$n]); 
                for ($i = 0; $i <= $length; $i ++) {
                    //从空格断开 
                    if (($i - 1) == strlen(trim(mb_substr($str2[$n], 0, $i, ‘gb2312‘)))) { 
                        $ii = $i - 1; 
                        $url1 = mb_substr($str2[$n], 0, $ii, ‘gb2312‘); 
                        $url2 = mb_substr($str2[$n], $ii, $length, ‘gb2312‘); 
                        $url3 = "<a href=\"http://" . $url1 . "\" target=\"_blank\">http://" . $url1 . "</a>" . $url2; 
                        break; 
                    } 
 
                    //从出现汉字处断开 
                    if ($i != strlen(mb_substr($str2[$n], 0, $i, ‘gb2312‘))) { 
                        $ii = $i - 1; 
                        $url1 = mb_substr($str2[$n], 0, $ii, ‘gb2312‘); 
                        $url2 = mb_substr($str2[$n], $ii, $length, ‘gb2312‘); 
                        $url3 = "<a href=\"http://" . $url1 . "\" target=\"_blank\">http://" . $url1 . "</a>" . $url2; 
                        break; 
                    } 
                    if ($i == $length) 
                        $url3 = "<a href=\"http://" . $str2[$n] . "\" target=\"_blank\">http://" . $str2[$n] . "</a>"; 
                } 
            } else 
                $url3 = "http://" . $str2[$n]; 
        } else 
            $url3 = "http://" . $str2[$n]; 
        $url .= $url3; 
    } 
    if (substr($str, 0, 7) == "http://") 
        $url = "<a href=\"http://$str2[0]\" target=\"_blank\">" . $str2[0] . "</a>" . $url; 
    else 
        $url = $str2[0] . $url; 
    return $url; 
}
?>

 

以上是关于PHP文本路径转换为链接文字的主要内容,如果未能解决你的问题,请参考以下文章

PHP将纯文本转换为标签链接

PHP Linkify - 将文本转换为链接

PHP 将文本转换为链接

JavaScript单行代码,也就是代码片段

PHP:将英文普通文本转换为 URL [重复]

高分求-VB 把ANSI文本转换成UTF-8,多谢!!