[PHP-users 7092] Re: preg_match()の正規表現で URLを抽出し
Osamu Shigematsu
php-users@php.gr.jp
Tue, 23 Apr 2002 19:10:34 +0900
重松です。
> preg_match()を使って、正規表現でURLを抽出したいのですが、
> 一部旨く行きません。
どうしても、preg_match() を使いたいのでないなら、
#!/usr/local/bin/php -q
<?php
$txt = "ほげhttp://www.hogehoge.com/hoge.php?hoge=hogehogeうげ";
$html = mbereg_replace(
'https?://[a-zA-Z0-9.]{2,}(:[0-9]+)?(/[-_.!~*a-zA-
Z0-9;/?:@&=+$,%#]+)?',
'<a href="\0">\0</a>',$txt);
echo $html;
?>
でどうでしょ?
というか、その元の URL 抽出はかなりヘボイ正規表現なので、まともに書き直した方がよいのでは。
# それ以前に絶対どこかにもっとまともなものが落ちているハズ。
# 私のもかなり適当ですけどね。
あと、Perl 互換の正規表現ライブラリって、国際化されているのでしょうか。。。
> OS:IRIX(unix)v6.5.1
> Apache1.3.20
> PHP4.0.6
> です。
IRIX はどうでもよいとして、Apache も PHP も随分と古いですね。。。
そういえば、今日 PHP 4.2.0 が正式リリースとなったようです。
これに入れ替えてもらってはどうでしょうか。>その業者
# そうすれば、mbstring に mbregex がマージされているので。
--
Osamu Shigematsu
mailto:shige@ravi.ne.jp