[PHP-users 7094] Re: preg_match()の正規表現で URLを抽出

Osamu Shigematsu php-users@php.gr.jp
Tue, 23 Apr 2002 19:30:23 +0900


重松です。

> # 私のもかなり適当ですけどね。

#!/usr/local/bin/php -q
<?php

$txt = "ほげhttp://192.160.0.1:8080/hoge.php?hoge=hogehogeうげ";

$html = mbereg_replace(
		'https?://'.
		'(([a-zA-Z0-9]+\.){1,}[a-zA-Z]+|(\d+.){3}\d+)'. // host
		'(:\d+)?'. // port
		'(/[-.!~*\d\w;/?:@&=+$,%#]+)?',
		'<a href="\0">\0</a>',$txt);

echo $html;
?>

あまりに適当すぎて、ポートだとか忘れてました。
ローカルなホストの指定 (http://localhost/hoge.php) みたいなのは、
識別しないですし、改良の余地は腐るほどあるかと思いますが。

では。

--
Osamu Shigematsu
mailto:shige@ravi.ne.jp