PHPでURLを読み替える方法

Pocket

PHPを使うと、パラメータを与えてそれに応じて描画する、ということができます。
例えば「http://myhost/imagetest.php?p=abcd&q=jpg」というURLを指定し「abcd」というパラメータを与え、これに応じてJPG画像を作成するケースがあったとします。
この場合、描画した画像を保存する場合、ファイル名がすべて「imagetest.jpg」となってしまいます。パラメータが異なってもファイル名が同じなのです。
もしURLが「http://myhost/imagetest.php/abcd.jpg」ならばファイル名は「abcd.jpg」と保存されるので、次のような処理ができないか、考えます。

「http://myhost/imagetest.php/abcd.jpg」を
「http://myhost/imagetest.php?p=abcd&q=jpg」に読み替える。

サンプル

$pathinfo=$_SERVER['PATH_INFO'];
$arrs=split("[/\.]",$pathinfo);
$p=$arrs[1];
$q=$arrs[2];

$_SERVER["PATH_INFO"]はファイル名「imagetest.php」より後の部分を取得しますので、$pathinfoには「/abcd.jpg」が入ります。
これをsplitを使い「/」と「.」で分割します。1種類の記号で分割する場合はexplodeを使いますが、ここでは2種類なのでsplitを使いました。もっと複雑な分割が必要ならばpreg_matchなどを使うことになるでしょう。
$arrs[0]=>""
$arrs[1]=>"abcd"
$arrs[2]=>"jpg"
となります。
あとは$_GET['p']や$_GET['q']を使ってパラメータを得る場合と同じ処理になります。

[ 2011年8月26日 | カテゴリー: PHP | タグ: , , , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報