[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение икнлюженного файла на лету
atav
Всем привет!
Задача такая: есть php'шный файл, который в определенный момент инклюдит html'ный файл.
Нужно сделать так, чтобы при выводе хтмл файла в определенном месте ( например, найти в хтмл <div id="main> и добавить сразу после этой строки <div id="add"></div> ), но при этом само содержимое хтмл файла не исправлять, а просто вывести имеено с такой добавкой.

Вообще ситуация такая:

Есть index.php, который инклюдит при определенном запросе нужный контроллер, а контроллер уже инклюдит хтмл файл.

Так вот, нужно сделать так, чтобы при наличии в index.php определенной информации - во всех контроллерах, перед выводом своих хтмл-ок добавлялось после "<div id="main>" <div id="add"></div>. В моей ситуации нужно, чтобы на всех страницах выводились <div id="add"></div> тогда, когда мне это нужно. Но я не хочу править все хтмлки вручную способом, типа такого "<?php if(isset........){} ?>"

Каким образом возможно такое реализовать?



Спустя 11 минут, 17 секунд (7.12.2011 - 02:41) inpost написал(а):
file_get_contents(), получишь данные нужного участка, потом регуляркой preg_replace, или, если ты уже чётко знаешь то, что исправить надо, просто str_replace.

Спустя 8 минут, 6 секунд (7.12.2011 - 02:49) atav написал(а):
Да, конечно я смотрел в сторону str_replace при мысли, что нужно добавить текст.
Но каким образом мне сделать это с инклюженым файлом?
если я делаю include '1.html';
а после делаю str_replace("<body>", "<body>blablabla");
То, естественно, ничего не происходит sad.gif

Спустя 32 секунды (7.12.2011 - 02:49) inpost написал(а):
Я написал функцию, которая будет ВМЕСТО include smile.gif

Спустя 18 минут, 43 секунды (7.12.2011 - 03:08) atav написал(а):
Понял. Сделал так:
$getFile = file_get_contents("$sitepath/$tplpath/$tplname/news.html");
$getFile = str_replace("<body>", "<body>blabla", $getFile);
echo $getFile;

Но echo мне не подходит, т.к в хтмле есть пхпшные ф-ции. Которые, естественно, просто в сурсе html выводятся...

Спустя 30 секунд (7.12.2011 - 03:09) inpost написал(а):
eval

Спустя 18 минут, 45 секунд (7.12.2011 - 03:27) inpost написал(а):
Есть альтернатива, используй http://php.net/manual/en/function.ob-start.php , тогда ты сможешь уже обработанный вывод через include занести в переменную, и потом её обработать! Это, я думаю, будет все же лучше, чем предыдущие мои советы.

Спустя 38 минут, 57 секунд (7.12.2011 - 04:06) atav написал(а):
Да, альтернатива понравилась. Спасибо!

Спустя 39 секунд (7.12.2011 - 04:07) atav написал(а):
Интересно, плохо то, что я сам до этого не дошел, или все же не критично? smile.gif smile.gif

Спустя 1 минута, 9 секунд (7.12.2011 - 04:08) inpost написал(а):
Всё норм.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.