Расширение PHP эхо? - PullRequest
       33

Расширение PHP эхо?

0 голосов
/ 05 марта 2011

Можно ли расширить PHP echo, чтобы я мог запускать дополнительный код обработки для каждой отображаемой строки?Мне нужен способ очистки всех выходов, и я не хочу вызывать strip_tags на каждом дисплее вручную.

Ответы [ 3 ]

5 голосов
/ 05 марта 2011

Вы не можете изменить поведение echo, но вы можете использовать функции буферизации вывода php (см. Обратные вызовы). Однако это кажется излишним. Как и предполагал casablance: создайте функцию.

2 голосов
/ 05 марта 2011

chustar,

написать свой собственный класс со статическими методами и поместить его в app / libs.

Edit0: Вы программист, напишите код, который меняет код.

0 голосов
/ 05 марта 2011

@ chutstar, если вы работаете в Linux, вы можете использовать sed , чтобы найти и заменить все 'echo' на 'strip_echo' в файлах .php в каталоге, рекурсивно.

Ниже показано, как Zend Framework заменил все 'require_once' на '// require_once', EXCEPT для 'require_once', который появляется в файле Loader / Autoloader.php или Application.pp

#!/bin/sh
#  cd path/to/ZendFramework/library
# replace all 'require_once' with '//require_once' , and skip Autoloader.php & Application.php
 find . -name '*.php' -not -wholename '*/Loader/Autoloader.php' -not -wholename '*/Application.php' -print0 | xargs -0 sed --regexp-extended --in-place 's/(require_once)/\/\/ \1/g'

Итак ВАШ скрипт должен быть

#!/bin/sh
# replace all 'echo' with 'strip_echo'
#  cd path/to/ZendFramework/library
 find . -name '*.php' -print0 | xargs -0 sed --regexp-extended --in-place 's/echo/strip_echo/g'

Я проверил, и это работает. Хотя могут быть неожиданные замены, которые вы должны проверить, например, когда 'echo' случайно является частью некоторых других имен функций или переменных и т. Д.

...