Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переопределить echo =)
 
 автор: ZuArt   (19.06.2007 в 16:16)   письмо автору
 
 

Если в сайт идет подключение модуля, который выводит данные оператором echo, но выводимый контент нужно пропустить через определенную функцию, то есть три варианта:
- организация буферизации вывода =) (функа ob_start() и иже с нею)
- создать свою функу вывода (аля MyEcho($out)) и заставить юзать ее
- переопределить функи вывода (или хотя бы echo) - самое удобное для использования.... НО реализовываемо ли это???

Собсно выше и есть вопрос - КАК переопределить встроенную функу echo на свою ;) ???

Пример для непонятливых ;)

function echo($out)
{
 $out = ........;

 echo $out; // вызов стандертной функи echo
};

echo "ТЕКСТ ДЛЯ ВЫВОДА"; // вызов функи echo($out)


PS. Чувствую, что ответа кроме "такое невозможно" не получу, но все же =))) а вдруг?

   
 
 автор: Unkind   (19.06.2007 в 16:21)   письмо автору
 
   для: ZuArt   (19.06.2007 в 16:16)
 

Да не то что невозможно. Это просто глупо.


<?php
echo(myfunction($string));
?>


Вместо myfunction() Ваша функция, которая будет обрабатывать содержимое.
Либо ob_start("callback"), где "callback" имя функции, которая будет обрабатывать содержимое буфера.

P.S. echo не функция, а конструкция языка.

   
 
 автор: ZuArt   (19.06.2007 в 16:31)   письмо автору
 
   для: Unkind   (19.06.2007 в 16:21)
 

Это просто глупо.

Попрошу без оскорблений!!!

Если Вы не видите применений данной проблематике, то это ваша проблема, а для примера ЛЕГКО могу предоставить пример...

Чужой модуль, кодированный Zend-ом, который генерит некий контент, со своими ссылками вида "http://site1.ru"- переделать нужно перед выводом на "http://site2.ru"...

Можно сделать, естессно в обход - обратиться к модулю через http://site2.ru/module.php - потом полученный контент прогнать через регулярку и т.д. - обходной путь... но он требует ресурсов времени... Гораздо быстрее простой include_once("module.php"), но тогда ссылки будут вести на http://site1.ru

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

   
 
 автор: Unkind   (19.06.2007 в 16:36)   письмо автору
 
   для: ZuArt   (19.06.2007 в 16:31)
 

Я уже сказал.
Либо ob_start("callback"), где "callback" имя функции, которая будет обрабатывать содержимое буфера.

Переопределение функций/операторов в PHP невозможно. В Perl можно.

   
 
 автор: ZuArt   (19.06.2007 в 17:08)   письмо автору
 
   для: Unkind   (19.06.2007 в 16:36)
 

=))) уже повторения пошли... если нет вариантов, просьба не повторять вышесказанное =))

Ждем еще предложений - часто "невозможное возможно" =)))

   
 
 автор: Unkind   (19.06.2007 в 17:49)   письмо автору
 
   для: ZuArt   (19.06.2007 в 17:08)
 

OK. Я наврал. Скачайте исходники PHP и измените их. Потом скомпилируйте.

   
 
 автор: ZuArt   (19.06.2007 в 18:05)   письмо автору
 
   для: Unkind   (19.06.2007 в 17:49)
 

Хороший вариант ;) - между прочим - ВАРИАНТ, заслуживающий внимания... и это факт... =)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования