Как эхо в переменной использованием PHP выход буферизации

Если вы пишете код в 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

Ehi Kioya

Единственный чернокожий WordPress разработчик на этом сайте. Забанил его по IP на следующий день после попытки спарсить свой блог. Видимо, разбирается в этом.

Добавить комментарий

%d такие блоггеры, как: