
正規表現を使い、URLで条件分岐したいのですが、
うまくいかないので、教えてください。
<やりたいこと>
http://ドメイン/page1.html
http://ドメイン/page2.html
:
のページの時のみ、
という条件分岐をしたい。
<現状>
if($_SERVER['REQUEST_URI']=="/page1.html"){
とするとうまくいくのですが、
これを任意のpage○で対応したい
$_SERVER['REQUEST_URI']=="^/page*.html$"){
としたけど、ダメでした。
どう書けば、よいでしょうか?
No.1ベストアンサー
- 回答日時:
まず、 == は完全一致であって、正規表現とのマッチングではない。
$_SERVER['REQUEST_URI'] =="^/page*.html$" は 「$_SERVER['REQUEST_URI']が"^/page*.html$"という文字列と等しい」という意味になる、というのが一点。
preg_match関数等の正規表現用の関数を使う。
もう一点は、正規表現が目的のものと一致していない。
*は「直前の表現の0回以上の繰り返し」
.は「任意の一文字」
という意味がある。なので、この表現だと
先頭 / p a g eの0回以上の繰り返し 任意の一文字 h t m l 最後
という文字列と一致する。
一つ以上の数字なら [0-9]+
.の特殊な意味を無効にするなら \. とエスケープする。
また、preg_*を使うなら、表現の前後にデリミタが必要。
以上をまとめると
if ( preg_match( '#^/page[0-9]+\.html$#', $_SERVER['REQUEST_URI'] ) {
より詳細はマニュアル
http://jp2.php.net/manual/ja/book.pcre.php
や各解説書、解説サイト等を参考に。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現を使い、URLで条件分岐...
-
Subversionのリポジトリの削除
-
FTPコマンドでディレクトリごと...
-
拡張子php画像をjpg画像等に変...
-
.htaccessにphp_valueが使用できな
-
inputタグでphpを呼び出す際、...
-
CFileDialogの最初のディレクト...
-
GD(php)での image関数 イメ...
-
PHPのif文でその処理を途中で抜...
-
「クラウドにアップロード」」...
-
ftpでアップロードが出来ない
-
Oracleに接続できません
-
php.ini を設定を変更すると再...
-
「localhostの応答を待っていま...
-
全角ファイル名をアップロード...
-
Subversionで、ファイルをリネ...
-
WindowsにおけるPHP拡張モジュ...
-
urlの直接入力を防ぐには
-
タイマー機能を使って指定時間...
-
PHPでfatal errorが出ても無視...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
nl2bの代用関数を何か知ってい...
-
htmlでphp(WordPress)を動かす
-
EZwebからphpのページを見るこ...
-
path文字列の操作
-
includeでHTMLファイルを呼出し...
-
階層が違う場合の絶対パス相対...
-
電通のタブーとは
-
botを作っているのですが、oaut...
-
「旭日中綬賞 」とはどんな賞で...
-
centos6のlogにscript not foun...
-
携帯で携帯サイトを閲覧すると...
-
PHP file_get_contents 503 ser...
-
htmlの書き換え
-
SSI される .inc ファイル内に ...
-
COOKIEの保存がうまくいかない
-
phpとhtmlについて分からない部...
-
xhtmlサイトでPHPタグをhtml拡...
-
PHPでheader情報がうまく表示で...
-
xrea+ と 開発環境 とで .htacc...
-
ページに読み込みたい
おすすめ情報