PHP實現(xiàn)把文本中的URL轉(zhuǎn)換為鏈接的auolink()函數(shù)分享

字號:


    一文中介紹過PHP代碼如何實現(xiàn)將URL地址轉(zhuǎn)化成鏈接的方法,今天給大家介紹一個更加簡潔的版本,先來看看PHP的源代碼:
    auolink() API
    代碼如下:
    /**
    * Author: SeeDZ
    * From: http://code.seebz.net/p/autolink-php/
    **/
    function autolink($str, $attributes = array()) {
        $attrs = '';
        foreach ($attributes as $attribute=>$value) {
            $attrs .= " {$attribute}=\"{$value}\"";
        }
        $str = ' '.$str;
        $str = preg_replace('`([^"=\'>])((http|https|ftp|ftps)://[^\s< ]+[^\s<\.)])`i', '$1<a href="$2" rel="external nofollow" '.$attrs.'>$2</a>', $str);
        $str = substr($str, 1);
        return $str;
    }
    么樣,很簡潔吧!看看函數(shù)的API文檔吧:
    語法
    string autolink ( string $str [, array $attributes = array() ] )
    參數(shù)介紹
    str – 必選(String 類型數(shù)據(jù))。需要查詢替換的文本。
    attributes -可選(Array 類型數(shù)據(jù))。替換鏈接的一些可選參數(shù)。
    返回值
    返回替換后的文本。
    autolink() 調(diào)用方法
    autolink使用起來也很方便,我們可以只傳一個參數(shù),即為必選的需要替換的字符文本。例如:
    <?php
    $str = 'A link : http://example.com/?param=value#anchor.';
    $str = autolink($str);
    echo $str; // A link : <a rel="external nofollow" >http://example.com/?param=value#anchor</a>.
    ?>
    代碼如下:
    另外我們還可以設(shè)置一些額外的鏈接的參數(shù),可以讓生成的鏈接在新窗口中打開,或者不希望搜索引擎索引替換的鏈接。例如:
    代碼如下:
    <?php
    $str = 'http://example.com/';
    $str = autolink($str, array("target"=>"_blank","rel"=>"nofollow"));
    echo $str; // <a rel="external nofollow" target="_blank" >http://example.com/</a>
    ?>
    怎么樣,方便好用吧!