PHP: Printing Information - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

Startup and Shutdown Functions Returning Values

Last updated: Fri, 26 Jan 2007

view this page in

# Printing Information

Often it's necessary to print messages to the output stream from your module, just as print() would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

## zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

## zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see `zend_errors.h`), and the second is the error message.

    zend_error(E_WARNING, "This function has been called with empty arguments");

Табл. 46-16 shows a list of possible values (see Рис. 46-3). These values are also referred to in `php.ini`. Depending on which error type you choose, your messages will be logged.

Таблица 46-16. Zend's Predefined Error Messages.

Error | Description
`E_ERROR` | Signals an error and terminates execution of the script immediately .
`E_WARNING` | Signals a generic warning. Execution continues.
`E_PARSE` | Signals a parser error. Execution continues.
`E_NOTICE` | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in `php.ini`.
`E_CORE_ERROR` | Internal error by the core; shouldn't be used by user-written modules.
`E_COMPILE_ERROR` | Internal error by the compiler; shouldn't be used by user-written modules.
`E_COMPILE_WARNING` | Internal warning by the compiler; shouldn't be used by user-written modules.

Рисунок 46-3. Display of warning messages in the browser.

## Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the `ZEND_MINFO()` function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the `ZEND_MINFO` function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Прим. 46-13 shows a source example and its output. To print the table footer, use php_info_print_table_end().

Пример 46-13. Source code and screenshot for output in phpinfo().

    php_info_print_table_start();
    php_info_print_table_header(2, "First column", "Second column");
    php_info_print_table_row(2, "Entry in first row", "Another entry");
    php_info_print_table_row(2, "Just to fill", "another row here");
    php_info_print_table_end();

## Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the `TSRMLS_C` macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the `INTERNAL_FUNCTION_PARAMETERS` described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro `TSRMLS_FETCH()` once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Прим. 46-14.

Пример 46-14. Printing execution information.

    zend_printf("The name of the current function is %s<br>", get_active_function_name(TSRMLS_C));
    zend_printf("The file currently executed is %s<br>", zend_get_executed_filename(TSRMLS_C));
    zend_printf("The current line being executed is %i<br>", zend_get_executed_lineno(TSRMLS_C));

add a note User Contributed Notes
Printing Information
There are no user contributed notes for this page.
Startup and Shutdown Functions Returning Values

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST