私はこれをテンプレートファイルに使用しているので、大量の関数/文字列/スイッチケース/elseifs (選択してください) で単一のファイルを乱雑にしたり、同じレイアウトで大量のファイルを作成したりする代わりに、「ページ」を含めることができます。
インクルードするディレクトリの実パスと、インクルードするファイルの実パスをチェックします。ファイルの実パスがインクルード ディレクトリで始まる場合、インクルードが許可されます。
<?
#If you're worried about funky characters messing with stuff, use this
#preg_replace("/[^A-Za-z0-9_\-]+/","",$str);
if (isset($_REQUEST['page'])) {
$path=realpath("../inc/page").DIRECTORY_SEPARATOR;
$full_page=realpath($path.$_REQUEST['page'].".php");
if (file_exists($full_page)&&(strpos($full_page,$path)===0)) {
include($full_page);
} else {
echo "FAILED";
}
}
?>