[PHP-users 1347] URLのリンク変換について(正規表現)

水沼寛喜 php-users@php.gr.jp
Wed, 22 Aug 2001 00:08:01 +0900


先ほどの質問の続きなのですが下記のようなプログラムまでは出来ているのですがど
うしてもディレクトリーがあるとhttp://www.nifty.comがあるURLを_blankなしの置
換ができなくなります。

$comは実際にはファームの<textarea></textarea>を利用してデータと取ってくるの
ですが下記の方法で大丈夫だと思うので省略させていただきました。

何度もすいませんがご教授お願いします。

<?
$com = "http://www.nifty.com/intel/intel.html\nhttp://www.yahoo.co.jp\nあい
うえお\n&\"<>\\',.";

print "<html><body>";

$com = htmlspecialchars($com);

$com = stripslashes($com);

$com =
ereg_replace("(https?|ftp|news)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)","<a
href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$com);

$com = ereg_replace("<a
href=\"([http://www.nifty.com]+[/]*)([[:alnum:]*]*[[/\.]*]*[[:alnum:]*]*)\"
target=\"_blank\">([http://www.nifty.com]+[/]*)([[:alnum:]*]*[[/\.]*]*[[:aln
um:]*]*)</a>","<a href=\"\\1\\2\">\\1\\2</a>",$com);

$com = ereg_replace("([#-9A-~]+)(@[#-9A-~]+)","<a
href=\"mailto:\\1\\2\">\\1\\2</a>",$com);

$com = str_replace( "\r\n",  "\r", $com);
$com = str_replace( "\r",  "\n", $com);
$com = nl2br ("$com");
$com = ereg_replace( "\n",  "", $com);

echo "$com";

print "</body></html>";
?>