antonio's blog

antonio's blog


Блог о всяком разном, связанном с разработкой ПО. Пишу редко, когда есть время и желание.

Anton Dobkin
Author

Share


Tags


Разработка расширений для PHP. Вывод информации

Anton DobkinAnton Dobkin

Для вывода информации/данных Zend Engine предоставляет несколько функций и макросов:

Для вывода информации пользователю, во время выполнения, необходимо использовать функцию zend_printf(). Функция синтаксически идентична функции printf() из стандартной библиотеки C. Если PHP скрипт запущен для обработки HTTP-запроса, выводимая через zend_printf() информация будет отправлена напрямую клиенту, при выполнении скрипта в режиме CLI — информация будет отправлена на stdout. Функция позволяет выводить информацию через механизм буферов с которым может быть связаны дополнительные механизмы обработки, например, сжатие GZIP.

Так как PHP строки могут содержать двоичные данные то для вывода таких данных вместо функции zend_printf() необходимо использовать макрос ZEND_WRITE(). Первым аргументом макрос принимает указатель на начало выводимой строки, вторым аргументом длину строки.

Функция zend_html_puts() аналогична макросу ZEND_WRITE() - выводит строки, но в отличии от макроса перед выводом производит замену спец. символов в их html сущности:

Символ HTML-замена
\t    
\n<br/>
<&lt;
>&gt;
&&amp;
пробел&nbsp;

Для вывода одиночного символа необходимо использовать функцию zend_html_putc() и макрос ZEND_PUTC(). Функция zend_html_putc() аналогична макросу ZEND_PUTC(), но в отличии от него перед выводом производит замену спец. символов в их html сущности (см. таблицу выше)

Anton Dobkin
Author

Anton Dobkin

Comments