Поиск по регулярным выражениям в PHP включает, а затем пишет, где он их нашел - PullRequest
5 голосов
/ 04 июня 2011

У меня есть этот сценарий (с хорошими комментариями!), Который ищет файлы в папке с помощью регулярных выражений, удаляет комментарии и HTML, но оставляет тег без изменений.Я хотел бы, чтобы этот сценарий делал то же самое, но вместо того, чтобы оставить тег нетронутым, он должен напечатать найденное в файл включение.

Например:

<!--TPFILE--><?include '/module/menu.html';?><!--TPFILEEND-->

Таким образом, цельраспечатать HTML-код из menu.html, где регулярное выражение нашло включение.Я очень новичок в PHP, но понимаю основы, хотя, я застрял на этом.

РЕДАКТИРОВАТЬ: Я нашел решение, оно опубликовано как ответ ниже.

Ответы [ 2 ]

1 голос
/ 04 июня 2011

Требуется ли этот синтаксис: <?include '/module/menu.html';?>?Не могли бы вы заменить это на <?php include '/blah/foo.php';?>?Если это так, вы можете либо напрямую включить файл, либо использовать token_get_all(), чтобы разделить HTML на куски PHP и вывод обычной строки (HTML).

0 голосов
/ 05 июня 2011

Решение состоит в том, чтобы использовать

preg_replace_callback

И создать новую функцию и использовать file_get_contents:

function repl_str($matches)
{
  // $matches[1] the match for the first subpattern
  return file_get_contents($matches[1]);
}

Вот ссылка на завершенный фрагмент сценария

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...