@Shimpanze

PHP: можно ли обработать контент, полученный с помощью функции require?

Добрый день!

Скажите, пожалуйста, можно ли обработать контент, полученный с помощью функции require(), с помощью собственной функции? Что то такое:

sobstvennayaFunctsiya( require( 'content.php' ) );

Пробовал так:

$p = function() {
  return require('content.php');
}
echo sobstvennayaFunctsiya( $p );


... тоже не работает.

P.S. Я в курсе про функцию file_get_contents, но она не пригодна, если в вставляемом файле, есть теги php - они просто экранируются и php-код не исполняется. А мне необходимо получить уже исполненный html и php код и обработать его собственной функцией.

Большое спасибо, всем кто откликнется.
  • Вопрос задан
  • 382 просмотра
Решения вопроса 2
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
Ну тут либо как Camaro67 написал, либо just_hank_moody уже сказал про буфферизацию.
ob_start();
require(<файл>);
$content = ob_get_contents();
ob_clean();

echo $content; //в $content лежит содержимое <файл>

А любой eval() - потенциально уязвим и использовать его очень не рекомендуется. Хотя, конечно. чисто академически вариант рабочий.
Ответ написан
Комментировать
@just_hank_moody
Нет, нельзя Функция require только подключает файл и не возвращает в ответ строку.

В данном случае лучше прочитать про буфферизацию в php.

Включается буферизация вывода в самом начале скрипта, в конце исполнения скрипта считывать в строку буфер и потом обрабатывать ее своей функцией.

Или file_get_contents плюс функция eval();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы