Если вы пишете код в PHP, то вы, конечно, знакомы с эхо. Echo — это очень удобная конструкция языка PHP, используемая для вывода одной или нескольких строк. Но эхо пишет на выходе непосредственно. Так что это не очень просто сохранить выход эха в переменную для последующего использования. Для этого необходимо буферизирующее выходPH PHP.
Давайте рассмотрим, как это работает с помощью кода PHP в WordPress в качестве примера.
В то время как обсуждение ниже представлено в контексте фильтра WordPress («содержание»),общий метод может быть довольно легко применен в любом другом контексте кода PHP.
PHP Выход буферизации: WordPress «содержание» Пример
Во-первых, позвольте мне попытаться объяснить, почему / когда вы можете эхо в переменной …
WordPress предоставляет функцию крутого do’shortcode, которая позволяет разработчикам использовать короткие коды непосредственно в коде PHP темы и шаблоны страниц.
Чтобы использовать функцию, напишите свой код следующим образом:
эхо do'shortcode (''put-your-shortcode-here');;
Обратите внимание, что результаты функции do’shortcode отправляются на вывод (ваш браузер) с помощью оператора эхо.
Но что, если вы не хотите писать на выходе только пока? Что делать, если вы хотите сохранить html выход вашего короткого кода в переменной, выполнить дальнейшие манипуляции строки на данных, и, наконец, распечатать его в более позднем разделе кода?
Вот где PHP вывода буферизации приходит в!
Хорошим примером этого является, когда вы делаете текстовые манипуляции на выходе HTML отдельных сообщений с помощью WordPress «содержание» фильтр.
Взгляните на этот фрагмент кода, который четко иллюстрирует весь процесс:
добавить фильтр ("контент", "ehi-kioya"after-post'content", 11, 1); функция ehi'kioya-after-post-content ($content) - если (является одно-единственной)) / / Мы записываем HTML выход нашего первого короткого кода в переменный ($output)) // Обратите внимание на использование буферизации вывода PHP: ob'start() и ob'get-clean() ob'start(); эхо-короткий код ('ваш-первый-короткий код»); $output-одно - обсгете-чистый(); Мы записываем HTML выход нашего второго шорт-кода в другую переменную ($output), используя тот же метод ob'start(); эхо do'shortcode ('другой-короткий код»); $output два - обсгете-чистый(); Теперь мы используем наши переменные в содержании wordPress пост $content .' Некоторые HTML "; $content . . . . $output . . . . . . . . . . . . . . . . . . $content .' 'Некоторые больше HTML'; $content $output $content .' 'Еще больше HTML'; вернуть $content;
В приведенном выше коде мы делаем буферизирование вывода с использованием функций ob’start() и ob’get-clean() .ru.
Если мы не используем буферизирование выходных данных, HTML-выходы вашего первого короткого кода и другого короткого кода будут преждевременно отправлены в браузер частями, прежде чем мы будем готовы их распечатать.
При буферизации вывода наши операторы эхо не будут печататься сразу в браузере.
Вместо этого, их HTML хранится в переменных($output и $output два)и отправляется в браузер, как один полный кусок после того, как мы закончили приложение переменных в соответствующих позициях мы хотим внутри нашего WordPress одного содержания поста ( $content).
Если вам весело играть с WordPress, PHP и Linux, вы должны проверить это: Работа с WordPress Cron (WP-Cron) Вопросы.
Вопрос: ehikioya.com