« 設置数制限のある広告をココログベーシックの記事下に自動配置 | トップページ | 小1次男の参観日 »

2012.02.10

PHPで「なんちゃって静的URL」

ジブン用にsymfonyライクで軽量なフレームワーク的なる物をササッと作ろうとしているんだが、契約しているホスティングサーバーではURLの書き換えが出来ず、本質的な問題ではないけど、それでもモジュールやアクションを

http://host/app/index.php?m=module&a=action

などと指定するのは、どう考えてもイケてない。。。と思っていたところ。。。

http://host/app/index.phpに対して、

http://host/app/index.php/module/actionというリクエストをしても、ちゃんとindex.phpが動いて、且つ、要求どおりの(後者の)URLを参照でき、さらに普通のパラメータもちゃんと受け取れる。。。と、昨日はじめて知りました。

「百歩譲ってコレは使える」と書いてみた↓

//URLからモジュールとアクションを抽出
$sma = $_SERVER['PHP_SELF'];
$sma = preg_replace(
  '(^.*/index\.php)', '',
  $sma);
$ma = explode('/', $sma);
while(count($ma) < 3) {
  $ma[] = '';
}
if($ma[1] != '') {
  $module = $ma[1];
}
if($ma[2] != '') {
  $action = $ma[2];
}

//HTMLのbaseディレクトリを決定する
$n = substr_count($sma,'/');
$base_dir='';
for($i = 0; $i < $n; $i++) {
  if($base_dir != '') {
    $base_dir .= '/';
  }
  $base_dir .= '..';
}
$base_dir .= '/';
$base_dir .= $module;
$base_dir .= '/';
$base_dir .= $action;

ベースディレクトリの指定はオプション的なものなんだけど、たとえばモジュールとアクション以降にも静的アドレス的なURLをパラメータ的に続ける仕様にしたとき、強制的にモジュールとアクションの位置にHTMLのベースアドレスを持ってくるために必要。

あんまりやりすぎるとフレームワークが軽量じゃなくなってきそう(笑)

« 設置数制限のある広告をココログベーシックの記事下に自動配置 | トップページ | 小1次男の参観日 »

プログラミング」カテゴリの記事

php」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: PHPで「なんちゃって静的URL」:

» クッキーでちょっと困った件 [ぱぱろぐのこころぐ]
先日TwitterAPIとOAuth認証の調査目的で作ってみたツイッターのアプリ [続きを読む]

« 設置数制限のある広告をココログベーシックの記事下に自動配置 | トップページ | 小1次男の参観日 »

2019年8月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
フォト

Google AdSense

銀の弾丸

無料ブログはココログ

他のアカウント