Задача такая: есть 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");
То, естественно, ничего не происходит
Но каким образом мне сделать это с инклюженым файлом?
если я делаю include '1.html';
а после делаю str_replace("<body>", "<body>blablabla");
То, естественно, ничего не происходит
Спустя 32 секунды (7.12.2011 - 02:49) inpost написал(а):
Я написал функцию, которая будет ВМЕСТО include
Спустя 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 выводятся...
$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 написал(а):
Интересно, плохо то, что я сам до этого не дошел, или все же не критично?
Спустя 1 минута, 9 секунд (7.12.2011 - 04:08) inpost написал(а):
Всё норм.