Я унаследовал несколько строго закодированных PHP-файлов, вывод которых мне нужно изменить программно.
Для этого я решил запустить их через другой PHP-файл rewriter.php, который выглядит примерно так:
<?php
if(!preg_match('/^([a-zA-Z0-9\-_]*)$/', $_GET['page']))
die('Incorrect page supplied.');
ob_start('changeOutput');
include($_GET['page'].'.php');
ob_end_flush();
function changeOutput ($buffer) {
...
}
?>
Я использую mod_rewrite, чтобы заставить их проходить через этот файл:
RewriteEngine On
RewriteRule ^([^\.]*)\.php$ rewriter.php?page=$1
Однако отображается сообщение об ошибке, которое заставляет меня поверить, что на оператор include () влияет RewriteRule, описанный выше, то есть он пытается запустить rewriter.php через rewriter.php и т. Д.
Полагаю, есть много способов решения этой проблемы, но я специально ищу способ избежать воздействия на оператор include () mod_rewrite. Я просмотрел документацию к модулю, но не смог найти ничего подходящего.
Конечно, альтернативы этому подходу тоже приветствуются.
Спасибо за ваше время и мысли.
С уважением,
Daniel