dポイントプレゼントキャンペーン実施中!

preg_matchあるいはereg関数を用いて、
&p=XX (XXは半角数字2桁)のようなパラメーターがURLに含まれるかを調べたいのですが、p=XXまではうまくいくのですが、&p=XXだと
マッチしなくなります。

$url = "http://hogehoge.jp/index.php&p=01";
$pattern = "&p=[0-9]{2}";
if (preg_match($pattern, $url)) {
echo "ある";
} else {
echo "ない";
}

ご指導のほど宜しくお願いします。

A 回答 (3件)

$pattern = "/&p=[0-9]{2}/";


でいいでしょう
    • good
    • 0

preg_matchは、/で挟むPerlの正規表現だったと思います。


以下のでヒットしましたよ。

$url = " http://hogehoge.jp/index.php&p=01";

preg_match('/^.+(&p=\d\d)$/',$url, $hoge );

$hoge[0] → 'http://hogehoge.jp/index.php&p=01'
$hoge[1] → '&p=01'

もし、 http://hogehoge.jp/index.php&p=01&ip=・・・・・
なら、preg_match('/^.+(&p=\d\d)/',$url, $hoge ); かな。
    • good
    • 0

preg_match、ereg共に“&”はサポートされていないと思います。


以下が分かりやすいかと。

http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd …

http://noongoro.main.jp/note/note0050.html
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!