С помощью create_function()
можно проверить, является ли некоторая строка верным PHP-кодом, не запуская при этом сам код. В самом деле, если создание функции с телом— заданной строкой — прошло успешно, значит, код синтаксически корректен. Вот пример:
$fname="file.php";
$code=join("",File($fname));
if(create_function("","?>$code<?"))
echo "Файл $fname является программой на PHP";
else
echo "Файл $fname — не PHP-сценарий";
Мы используем оператор @, чтобы подавить сообщение о том, что функцию создать не удалось, если файл не является верным PHP-сценарием. И, конечно, нам нужно перевести наш код в контекст восприятия документа, для чего, собственно,
и нужно обрамление строки тэгами ?>
и <?.
Представленный фрагмент, конечно, будет воспринимать любой текстовый файл и HTML-документ как "программу на PHP". И он будет прав, т. к., действительно, статический текст, в котором нет PHP-вставок, является верным PHP-сценарием.