[PHP-users 7091] preg_match()の正規表現でURLを抽出したい
Shinichi Moritani
php-users@php.gr.jp
Tue, 23 Apr 2002 18:39:52 +0900
こんにちは。森谷です。
preg_match()を使って、正規表現でURLを抽出したいのですが、
一部旨く行きません。
文字列 $buffer の中から URL を抽出したいので、
$buffer = "対象URLは http://www.hogehoge.com/hoge.php?hoge=hogehoge です";
$http_URL_regex = "(s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)";
preg_match("/$http_URL_regex/", $buffer, $url);
echo $url[1];
とすると、実行結果は、
http://www.hogehoge.com/hoge.php
となります。
http://www.hogehoge.com/hoge.php?hoge=hogehoge
を抽出したいのですが、「?」が入ると抽出できません。
$http_URL_regex = "(s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/\?:\@&=+\$,%#]+)"
でもだめです。
Perlメモ http://www.din.or.jp/~ohzaki/perl.htm#httpURL より
参照させて頂いた正規表現なので、Perl では抽出できるようなのですが、
preg_match() では旨く行きません。
どこが悪いかご指摘お願いします。
(過去ログにも見当たりませんでした)
環境は、レンタルサーバで、
OS:IRIX(unix)v6.5.1
Apache1.3.20
PHP4.0.6
です。
***************************
Name : Shinichi Moritani
Mail : ml@moritani.com
***************************