Я использую это для файла шаблона, так что он может включать «страницы» вместо того, чтобы загромождать один файл с тоннами функций / строк / switch-case / 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";
}
}
?>