検索
HOME
検索
サイトマップ
問い合わせ
ねこすけ
トップ > よく使うスクリプト > URLをリンクに変換する   

URLをリンクに変換する

WikiなどではコンテンツにURLを記載すると自動的にリンクを張ってくれますが自分で作った簡易CMSでもこの機能を追加したいことがしばしば。 多分誰かが作っているのでしょうが、探し方が下手なのか見つけられませんでした。 早速作ってみました。 ただし簡易版ですので、すでにURLに対してリンクを張ってある文字列があると場合は二重にリンクしてしまいます。

ソース

<?php



$str
=<<<ID
下記がそのリンクです<br>
http://php.nekosuke.com/sample/hoge.php?q=h&p=hoge1 <br>
URL2 http://php.nekosuke.com/sample/hoge.php?q=h&p=hoge2 ほげ <br>
URL3 http://php.nekosuke.com/sample/hoge.php?q=h&p=hoge3 ほげ <br>
URL4 ほげhttp://php.nekosuke.com/sample/hoge.php?q=h&p=hoge4 ほげ <br>
未変換 <a href="http://php.nekosuke.com/sample/hoge.php?q=h&p=hoge5">ほげ</a><br>
ID;

print 
"<h2>変換前</h2>";
print 
$str;
print 
"<h2>変換後</h2>";
print 
auto_url($str);



function 
auto_url($str){
    
preg_match_all("/(http:\/\/[\w\/\@\$()!?&%#:;.,~'=*+-]+)/i",strip_tags($str), $array_url);
    for(
$i=0;$i<count($array_url[1]);++$i){
        
$linkhtml="<a href=\"$array_url[1][$i]\">$array_url[1][$i]</a>";
        
$str=str_replace($array_url[1][$i],"<a href=\"".$array_url[1][$i]."\">".$array_url[1][$i]."</a>",$str);
    }
    return 
$str;
}




?>







  問い合わせ
ねこすけのsmarty著作権表示
ねこすけCMSへ
[EDIT]