PHPでzipファイルをアップロード後、サーバー内に解凍(展開)
画像データ等をサーバーにアップロードする際、一点づつアップロードしても良いけれど、ファイ…
MVCと呼ばれる各種フレームワークで、良く利用されるのが「フロントコントローラー」という構成。
全てのアクセスを一カ所(index.php)で受けとり処理しようというもの。
どんなURLにアクセスしてもindex.phpを実行するので、追加ファイルなどの対応も容易にできる。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [QSA,L]
</IfModule>
コードの内容は下記のサイトを参照
$parse_url = parse_url($_SERVER['REQUEST_URI']);
if(preg_match('/.php/', $parse_url['path'])){
$params = explode('/', $parse_url['path']);
$value = end($params);
$path = preg_replace('('.$value.')', '', $parse_url['path']);
$filename = preg_replace('(.php)', '', $value);
$filename = preg_replace('(-)', '', $filename);
$filename = ucfirst(strtolower($filename));
$filename = $filename.'Controller.php';
}else{
$path = $parse_url['path'];
$filename = 'IndexController.php';
}
include('./controllers/user/'.$path.$filename);
上記例は
https://sample.com/blog/ にアクセスした場合に https://sample.com/controllers/user/blog/IndexController.php を
https://sample.com/blog/detail.php にアクセスした場合は https://sample.com/controllers/user/blog/DetailController.php を読み込みます。