|
version 1.1.1.1, 2012/02/21 23:48:02
|
version 1.1.1.4, 2013/10/14 08:02:34
|
|
Line 2
|
Line 2
|
| +----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| | PHP Version 5 | |
| PHP Version 5 | |
| +----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| | Copyright (c) 1997-2012 The PHP Group | | | Copyright (c) 1997-2013 The PHP Group | |
| +----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| | This source file is subject to version 3.01 of the PHP license, | |
| This source file is subject to version 3.01 of the PHP license, | |
| | that is bundled with this package in the file LICENSE, and is | |
| that is bundled with this package in the file LICENSE, and is | |
|
Line 38
|
Line 38
|
| #include <sys/utsname.h> |
#include <sys/utsname.h> |
| #endif |
#endif |
| |
|
| |
|
| #ifdef PHP_WIN32 |
#ifdef PHP_WIN32 |
| typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); |
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); |
| typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD); |
typedef BOOL (WINAPI *PGPI)(DWORD, DWORD, DWORD, DWORD, PDWORD); |
| |
|
| # include "winver.h" |
# include "winver.h" |
| |
|
| #if _MSC_VER < 1300 | # if _MSC_VER < 1300 |
| # define OSVERSIONINFOEX php_win_OSVERSIONINFOEX | # define OSVERSIONINFOEX php_win_OSVERSIONINFOEX |
| | # endif |
| #endif |
#endif |
| |
|
| #endif |
|
| |
|
| #if HAVE_MBSTRING |
|
| #include "ext/mbstring/mbstring.h" |
|
| ZEND_EXTERN_MODULE_GLOBALS(mbstring) |
|
| #endif |
|
| |
|
| #if HAVE_ICONV |
|
| #include "ext/iconv/php_iconv.h" |
|
| ZEND_EXTERN_MODULE_GLOBALS(iconv) |
|
| #endif |
|
| |
|
| #define SECTION(name) if (!sapi_module.phpinfo_as_text) { \ |
#define SECTION(name) if (!sapi_module.phpinfo_as_text) { \ |
| PUTS("<h2>" name "</h2>\n"); \ | php_info_print("<h2>" name "</h2>\n"); \ |
| } else { \ |
} else { \ |
| php_info_print_table_start(); \ |
php_info_print_table_start(); \ |
| php_info_print_table_header(1, name); \ |
php_info_print_table_header(1, name); \ |
|
Line 71 ZEND_EXTERN_MODULE_GLOBALS(iconv)
|
Line 60 ZEND_EXTERN_MODULE_GLOBALS(iconv)
|
| PHPAPI extern char *php_ini_opened_path; |
PHPAPI extern char *php_ini_opened_path; |
| PHPAPI extern char *php_ini_scanned_path; |
PHPAPI extern char *php_ini_scanned_path; |
| PHPAPI extern char *php_ini_scanned_files; |
PHPAPI extern char *php_ini_scanned_files; |
| | |
| static int php_info_write_wrapper(const char *str, uint str_length) | static int php_info_print_html_esc(const char *str, int len) /* {{{ */ |
| { |
{ |
| int new_len, written; | size_t new_len; |
| char *elem_esc; | int written; |
| | char *new_str; |
| | TSRMLS_FETCH(); |
| | |
| | new_str = php_escape_html_entities((unsigned char *) str, len, &new_len, 0, ENT_QUOTES, "utf-8" TSRMLS_CC); |
| | written = php_output_write(new_str, new_len TSRMLS_CC); |
| | efree(new_str); |
| | return written; |
| | } |
| | /* }}} */ |
| |
|
| |
static int php_info_printf(const char *fmt, ...) /* {{{ */ |
| |
{ |
| |
char *buf; |
| |
int len, written; |
| |
va_list argv; |
| TSRMLS_FETCH(); |
TSRMLS_FETCH(); |
| |
|
| |
va_start(argv, fmt); |
| |
len = vspprintf(&buf, 0, fmt, argv); |
| |
va_end(argv); |
| |
|
| |
written = php_output_write(buf, len TSRMLS_CC); |
| |
efree(buf); |
| |
return written; |
| |
} |
| |
/* }}} */ |
| |
|
| elem_esc = php_escape_html_entities((unsigned char *)str, str_length, &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC); | static void php_info_print_request_uri(TSRMLS_D) /* {{{ */ |
| | { |
| | if (SG(request_info).request_uri) { |
| | php_info_print_html_esc(SG(request_info).request_uri, strlen(SG(request_info).request_uri)); |
| | } |
| | } |
| | /* }}} */ |
| |
|
| written = php_body_write(elem_esc, new_len TSRMLS_CC); | static int php_info_print(const char *str) /* {{{ */ |
| | { |
| | TSRMLS_FETCH(); |
| | return php_output_write(str, strlen(str) TSRMLS_CC); |
| | } |
| | /* }}} */ |
| |
|
| efree(elem_esc); | static void php_info_print_stream_hash(const char *name, HashTable *ht TSRMLS_DC) /* {{{ */ |
| | { |
| | char *key; |
| | uint len; |
| | |
| | if (ht) { |
| | if (zend_hash_num_elements(ht)) { |
| | HashPosition pos; |
| |
|
| return written; | if (!sapi_module.phpinfo_as_text) { |
| | php_info_printf("<tr><td class=\"e\">Registered %s</td><td class=\"v\">", name); |
| | } else { |
| | php_info_printf("\nRegistered %s => ", name); |
| | } |
| | |
| | zend_hash_internal_pointer_reset_ex(ht, &pos); |
| | while (zend_hash_get_current_key_ex(ht, &key, &len, NULL, 0, &pos) == HASH_KEY_IS_STRING) |
| | { |
| | if (!sapi_module.phpinfo_as_text) { |
| | php_info_print_html_esc(key, len-1); |
| | } else { |
| | php_info_print(key); |
| | } |
| | zend_hash_move_forward_ex(ht, &pos); |
| | if (zend_hash_get_current_key_ex(ht, &key, &len, NULL, 0, &pos) == HASH_KEY_IS_STRING) { |
| | php_info_print(", "); |
| | } else { |
| | break; |
| | } |
| | } |
| | |
| | if (!sapi_module.phpinfo_as_text) { |
| | php_info_print("</td></tr>\n"); |
| | } |
| | } else { |
| | char reg_name[128]; |
| | snprintf(reg_name, sizeof(reg_name), "Registered %s", name); |
| | php_info_print_table_row(2, reg_name, "none registered"); |
| | } |
| | } else { |
| | php_info_print_table_row(2, name, "disabled"); |
| | } |
| } |
} |
| |
/* }}} */ |
| |
|
| |
|
| PHPAPI void php_info_print_module(zend_module_entry *zend_module TSRMLS_DC) /* {{{ */ |
PHPAPI void php_info_print_module(zend_module_entry *zend_module TSRMLS_DC) /* {{{ */ |
| { |
{ |
| if (zend_module->info_func || zend_module->version) { |
if (zend_module->info_func || zend_module->version) { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<h2><a name=\"module_%s\">%s</a></h2>\n", zend_module->name, zend_module->name); | php_info_printf("<h2><a name=\"module_%s\">%s</a></h2>\n", zend_module->name, zend_module->name); |
| } else { |
} else { |
| php_info_print_table_start(); |
php_info_print_table_start(); |
| php_info_print_table_header(1, zend_module->name); |
php_info_print_table_header(1, zend_module->name); |
|
Line 109 PHPAPI void php_info_print_module(zend_module_entry *z
|
Line 172 PHPAPI void php_info_print_module(zend_module_entry *z
|
| } |
} |
| } else { |
} else { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<tr><td>%s</td></tr>\n", zend_module->name); | php_info_printf("<tr><td>%s</td></tr>\n", zend_module->name); |
| } else { |
} else { |
| php_printf("%s\n", zend_module->name); | php_info_printf("%s\n", zend_module->name); |
| } |
} |
| } |
} |
| } |
} |
|
Line 151 static void php_print_gpcse_array(char *name, uint nam
|
Line 214 static void php_print_gpcse_array(char *name, uint nam
|
| zend_hash_internal_pointer_reset(Z_ARRVAL_PP(data)); |
zend_hash_internal_pointer_reset(Z_ARRVAL_PP(data)); |
| while (zend_hash_get_current_data(Z_ARRVAL_PP(data), (void **) &tmp) == SUCCESS) { |
while (zend_hash_get_current_data(Z_ARRVAL_PP(data), (void **) &tmp) == SUCCESS) { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("<tr>"); | php_info_print("<tr>"); |
| PUTS("<td class=\"e\">"); | php_info_print("<td class=\"e\">"); |
| |
| } |
} |
| |
|
| PUTS(name); | php_info_print(name); |
| PUTS("[\""); | php_info_print("[\""); |
| |
|
| switch (zend_hash_get_current_key_ex(Z_ARRVAL_PP(data), &string_key, &string_len, &num_key, 0, NULL)) { |
switch (zend_hash_get_current_key_ex(Z_ARRVAL_PP(data), &string_key, &string_len, &num_key, 0, NULL)) { |
| case HASH_KEY_IS_STRING: |
case HASH_KEY_IS_STRING: |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_info_html_esc_write(string_key, string_len - 1 TSRMLS_CC); | php_info_print_html_esc(string_key, string_len-1); |
| } else { |
} else { |
| PHPWRITE(string_key, string_len - 1); | php_info_print(string_key); |
| } | } |
| break; |
break; |
| case HASH_KEY_IS_LONG: |
case HASH_KEY_IS_LONG: |
| php_printf("%ld", num_key); | php_info_printf("%ld", num_key); |
| break; |
break; |
| } |
} |
| PUTS("\"]"); | php_info_print("\"]"); |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("</td><td class=\"v\">"); | php_info_print("</td><td class=\"v\">"); |
| } else { |
} else { |
| PUTS(" => "); | php_info_print(" => "); |
| } |
} |
| if (Z_TYPE_PP(tmp) == IS_ARRAY) { |
if (Z_TYPE_PP(tmp) == IS_ARRAY) { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("<pre>"); | php_info_print("<pre>"); |
| zend_print_zval_r_ex((zend_write_func_t) php_info_write_wrapper, *tmp, 0 TSRMLS_CC); | zend_print_zval_r_ex((zend_write_func_t) php_info_print_html_esc, *tmp, 0 TSRMLS_CC); |
| PUTS("</pre>"); | php_info_print("</pre>"); |
| } else { |
} else { |
| zend_print_zval_r(*tmp, 0 TSRMLS_CC); |
zend_print_zval_r(*tmp, 0 TSRMLS_CC); |
| } |
} |
| } else if (Z_TYPE_PP(tmp) != IS_STRING) { | } else { |
| tmp2 = **tmp; |
tmp2 = **tmp; |
| zval_copy_ctor(&tmp2); | if (Z_TYPE_PP(tmp) != IS_STRING) { |
| convert_to_string(&tmp2); | tmp = NULL; |
| | zval_copy_ctor(&tmp2); |
| | convert_to_string(&tmp2); |
| | } |
| | |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| if (Z_STRLEN(tmp2) == 0) { |
if (Z_STRLEN(tmp2) == 0) { |
| PUTS("<i>no value</i>"); | php_info_print("<i>no value</i>"); |
| } else { |
} else { |
| php_info_html_esc_write(Z_STRVAL(tmp2), Z_STRLEN(tmp2) TSRMLS_CC); | php_info_print_html_esc(Z_STRVAL(tmp2), Z_STRLEN(tmp2)); |
| } | |
| } else { | |
| PHPWRITE(Z_STRVAL(tmp2), Z_STRLEN(tmp2)); | |
| } | |
| zval_dtor(&tmp2); | |
| } else { | |
| if (!sapi_module.phpinfo_as_text) { | |
| if (Z_STRLEN_PP(tmp) == 0) { | |
| PUTS("<i>no value</i>"); | |
| } else { | |
| php_info_html_esc_write(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp) TSRMLS_CC); | |
| } |
} |
| } else { |
} else { |
| PHPWRITE(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp)); | php_info_print(Z_STRVAL(tmp2)); |
| } | } |
| | |
| | if (!tmp) { |
| | zval_dtor(&tmp2); |
| | } |
| } |
} |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("</td></tr>\n"); | php_info_print("</td></tr>\n"); |
| } else { |
} else { |
| PUTS("\n"); | php_info_print("\n"); |
| } | } |
| zend_hash_move_forward(Z_ARRVAL_PP(data)); |
zend_hash_move_forward(Z_ARRVAL_PP(data)); |
| } |
} |
| } |
} |
|
Line 225 static void php_print_gpcse_array(char *name, uint nam
|
Line 284 static void php_print_gpcse_array(char *name, uint nam
|
| */ |
*/ |
| void php_info_print_style(TSRMLS_D) |
void php_info_print_style(TSRMLS_D) |
| { |
{ |
| php_printf("<style type=\"text/css\">\n"); | php_info_printf("<style type=\"text/css\">\n"); |
| php_info_print_css(TSRMLS_C); |
php_info_print_css(TSRMLS_C); |
| php_printf("</style>\n"); | php_info_printf("</style>\n"); |
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| /* {{{ php_info_html_esc_write |
|
| */ |
|
| PHPAPI void php_info_html_esc_write(char *string, int str_len TSRMLS_DC) |
|
| { |
|
| int new_len; |
|
| char *ret = php_escape_html_entities((unsigned char *)string, str_len, &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC); |
|
| |
|
| PHPWRITE(ret, new_len); |
|
| efree(ret); |
|
| } |
|
| /* }}} */ |
|
| |
|
| /* {{{ php_info_html_esc |
/* {{{ php_info_html_esc |
| */ |
*/ |
| PHPAPI char *php_info_html_esc(char *string TSRMLS_DC) |
PHPAPI char *php_info_html_esc(char *string TSRMLS_DC) |
| { |
{ |
| int new_len; | size_t new_len; |
| return php_escape_html_entities((unsigned char *)string, strlen(string), &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC); | return php_escape_html_entities((unsigned char *) string, strlen(string), &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC); |
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| |
|
| #ifdef PHP_WIN32 |
#ifdef PHP_WIN32 |
| /* {{{ */ |
/* {{{ */ |
| |
|
| char* php_get_windows_name() |
char* php_get_windows_name() |
| { |
{ |
| OSVERSIONINFOEX osvi; |
OSVERSIONINFOEX osvi; |
|
Line 281 char* php_get_windows_name()
|
Line 328 char* php_get_windows_name()
|
| } |
} |
| |
|
| if (VER_PLATFORM_WIN32_NT==osvi.dwPlatformId && osvi.dwMajorVersion > 4 ) { |
if (VER_PLATFORM_WIN32_NT==osvi.dwPlatformId && osvi.dwMajorVersion > 4 ) { |
| if (osvi.dwMajorVersion == 6) { | if (osvi.dwMajorVersion == 6) { |
| if( osvi.dwMinorVersion == 0 ) { |
if( osvi.dwMinorVersion == 0 ) { |
| if( osvi.wProductType == VER_NT_WORKSTATION ) { |
if( osvi.wProductType == VER_NT_WORKSTATION ) { |
| major = "Windows Vista"; |
major = "Windows Vista"; |
|
Line 296 char* php_get_windows_name()
|
Line 343 char* php_get_windows_name()
|
| major = "Windows Server 2008 R2"; |
major = "Windows Server 2008 R2"; |
| } |
} |
| } else { |
} else { |
| major = "Unknow Windows version"; | major = "Unknown Windows version"; |
| } |
} |
| |
|
| pGPI = (PGPI) GetProcAddress(GetModuleHandle("kernel32.dll"), "GetProductInfo"); |
pGPI = (PGPI) GetProcAddress(GetModuleHandle("kernel32.dll"), "GetProductInfo"); |
|
Line 357 char* php_get_windows_name()
|
Line 404 char* php_get_windows_name()
|
| } |
} |
| } |
} |
| |
|
| if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 ) { | if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2 ) { |
| if (GetSystemMetrics(SM_SERVERR2)) |
if (GetSystemMetrics(SM_SERVERR2)) |
| major = "Windows Server 2003 R2"; |
major = "Windows Server 2003 R2"; |
| else if (osvi.wSuiteMask == VER_SUITE_STORAGE_SERVER) | else if (osvi.wSuiteMask==VER_SUITE_STORAGE_SERVER) |
| major = "Windows Storage Server 2003"; |
major = "Windows Storage Server 2003"; |
| else if (osvi.wSuiteMask == VER_SUITE_WH_SERVER) | else if (osvi.wSuiteMask==VER_SUITE_WH_SERVER) |
| major = "Windows Home Server"; |
major = "Windows Home Server"; |
| else if (osvi.wProductType == VER_NT_WORKSTATION && |
else if (osvi.wProductType == VER_NT_WORKSTATION && |
| si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) { |
si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64) { |
|
Line 402 char* php_get_windows_name()
|
Line 449 char* php_get_windows_name()
|
| |
|
| if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) { |
if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 1 ) { |
| major = "Windows XP"; |
major = "Windows XP"; |
| if( osvi.wSuiteMask & VER_SUITE_PERSONAL ) | if( osvi.wSuiteMask & VER_SUITE_PERSONAL ) { |
| sub = "Home Edition"; |
sub = "Home Edition"; |
| else sub = "Professional"; | } else if (GetSystemMetrics(SM_MEDIACENTER)) { |
| | sub = "Media Center Edition"; |
| | } else if (GetSystemMetrics(SM_STARTER)) { |
| | sub = "Starter Edition"; |
| | } else if (GetSystemMetrics(SM_TABLETPC)) { |
| | sub = "Tablet PC Edition"; |
| | } else { |
| | sub = "Professional"; |
| | } |
| } |
} |
| |
|
| if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 ) { |
if ( osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0 ) { |
|
Line 486 PHPAPI char *php_get_uname(char mode)
|
Line 541 PHPAPI char *php_get_uname(char mode)
|
| GetComputerName(ComputerName, &dwSize); |
GetComputerName(ComputerName, &dwSize); |
| |
|
| if (mode == 's') { |
if (mode == 's') { |
| if (dwVersion < 0x80000000) { | php_uname = "Windows NT"; |
| php_uname = "Windows NT"; | |
| } else { | |
| php_uname = "Windows 9x"; | |
| } | |
| } else if (mode == 'r') { |
} else if (mode == 'r') { |
| snprintf(tmp_uname, sizeof(tmp_uname), "%d.%d", dwWindowsMajorVersion, dwWindowsMinorVersion); |
snprintf(tmp_uname, sizeof(tmp_uname), "%d.%d", dwWindowsMajorVersion, dwWindowsMinorVersion); |
| php_uname = tmp_uname; |
php_uname = tmp_uname; |
|
Line 512 PHPAPI char *php_get_uname(char mode)
|
Line 563 PHPAPI char *php_get_uname(char mode)
|
| php_get_windows_cpu(tmp_uname, sizeof(tmp_uname)); |
php_get_windows_cpu(tmp_uname, sizeof(tmp_uname)); |
| php_uname = tmp_uname; |
php_uname = tmp_uname; |
| } else { /* assume mode == 'a' */ |
} else { /* assume mode == 'a' */ |
| /* Get build numbers for Windows NT or Win95 */ | char *winver = php_get_windows_name(); |
| if (dwVersion < 0x80000000){ | char wincpu[20]; |
| char *winver = php_get_windows_name(); | |
| char wincpu[20]; | |
| |
|
| php_get_windows_cpu(wincpu, sizeof(wincpu)); | php_get_windows_cpu(wincpu, sizeof(wincpu)); |
| dwBuild = (DWORD)(HIWORD(dwVersion)); | dwBuild = (DWORD)(HIWORD(dwVersion)); |
| snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d build %d (%s) %s", | snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d build %d (%s) %s", |
| "Windows NT", ComputerName, | "Windows NT", ComputerName, |
| dwWindowsMajorVersion, dwWindowsMinorVersion, dwBuild, winver?winver:"unknown", wincpu); | dwWindowsMajorVersion, dwWindowsMinorVersion, dwBuild, winver?winver:"unknown", wincpu); |
| if(winver) { | if(winver) { |
| efree(winver); | efree(winver); |
| } | |
| } else { | |
| snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d", | |
| "Windows 9x", ComputerName, | |
| dwWindowsMajorVersion, dwWindowsMinorVersion); | |
| } |
} |
| php_uname = tmp_uname; |
php_uname = tmp_uname; |
| } |
} |
|
Line 588 PHPAPI char *php_get_uname(char mode)
|
Line 632 PHPAPI char *php_get_uname(char mode)
|
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| |
|
| /* {{{ php_print_info_htmlhead |
/* {{{ php_print_info_htmlhead |
| */ |
*/ |
| PHPAPI void php_print_info_htmlhead(TSRMLS_D) |
PHPAPI void php_print_info_htmlhead(TSRMLS_D) |
| { |
{ |
| php_info_print("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"); |
| /*** none of this is needed now *** | php_info_print("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); |
| php_info_print("<head>\n"); |
| const char *charset = NULL; | |
| |
| if (SG(default_charset)) { | |
| charset = SG(default_charset); | |
| } | |
| |
| #if HAVE_MBSTRING | |
| if (php_ob_handler_used("mb_output_handler" TSRMLS_CC)) { | |
| if (MBSTRG(current_http_output_encoding) == mbfl_no_encoding_pass) { | |
| charset = "US-ASCII"; | |
| } else { | |
| charset = mbfl_no2preferred_mime_name(MBSTRG(current_http_output_encoding)); | |
| } | |
| } | |
| #endif | |
| |
| #if HAVE_ICONV | |
| if (php_ob_handler_used("ob_iconv_handler" TSRMLS_CC)) { | |
| charset = ICONVG(output_encoding); | |
| } | |
| #endif | |
| |
| if (!charset || !charset[0]) { | |
| charset = "US-ASCII"; | |
| } | |
| |
| *** none of that is needed now ***/ | |
| |
| |
| PUTS("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"DTD/xhtml1-transitional.dtd\">\n"); | |
| PUTS("<html xmlns=\"http://www.w3.org/1999/xhtml\">"); | |
| PUTS("<head>\n"); | |
| php_info_print_style(TSRMLS_C); |
php_info_print_style(TSRMLS_C); |
| PUTS("<title>phpinfo()</title>"); | php_info_print("<title>phpinfo()</title>"); |
| PUTS("<meta name=\"ROBOTS\" content=\"NOINDEX,NOFOLLOW,NOARCHIVE\" />"); | php_info_print("<meta name=\"ROBOTS\" content=\"NOINDEX,NOFOLLOW,NOARCHIVE\" />"); |
| /* | php_info_print("</head>\n"); |
| php_printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\" />\n", charset); | php_info_print("<body><div class=\"center\">\n"); |
| */ | |
| PUTS("</head>\n"); | |
| PUTS("<body><div class=\"center\">\n"); | |
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
|
Line 661 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 669 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_print_info_htmlhead(TSRMLS_C); |
php_print_info_htmlhead(TSRMLS_C); |
| } else { |
} else { |
| PUTS("phpinfo()\n"); | php_info_print("phpinfo()\n"); |
| } | } |
| |
|
| if (flag & PHP_INFO_GENERAL) { |
if (flag & PHP_INFO_GENERAL) { |
| char *zend_version = get_zend_version(); |
char *zend_version = get_zend_version(); |
|
Line 676 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 684 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| } |
} |
| |
|
| if (expose_php && !sapi_module.phpinfo_as_text) { |
if (expose_php && !sapi_module.phpinfo_as_text) { |
| PUTS("<a href=\"http://www.php.net/\"><img border=\"0\" src=\""); | php_info_print("<a href=\"http://www.php.net/\"><img border=\"0\" src=\""); |
| if (SG(request_info).request_uri) { | php_info_print_request_uri(TSRMLS_C); |
| char *elem_esc = php_info_html_esc(SG(request_info).request_uri TSRMLS_CC); | php_info_print("?="); |
| PUTS(elem_esc); | |
| efree(elem_esc); | |
| } | |
| PUTS("?="); | |
| logo_guid = php_logo_guid(); |
logo_guid = php_logo_guid(); |
| PUTS(logo_guid); | php_info_print(logo_guid); |
| efree(logo_guid); |
efree(logo_guid); |
| PUTS("\" alt=\"PHP Logo\" /></a>"); | php_info_print("\" alt=\"PHP Logo\" /></a>"); |
| } |
} |
| |
|
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<h1 class=\"p\">PHP Version %s</h1>\n", PHP_VERSION); | php_info_printf("<h1 class=\"p\">PHP Version %s</h1>\n", PHP_VERSION); |
| } else { |
} else { |
| php_info_print_table_row(2, "PHP Version", PHP_VERSION); |
php_info_print_table_row(2, "PHP Version", PHP_VERSION); |
| } |
} |
|
Line 747 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 751 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| php_info_print_table_row(2, "Thread Safety", "disabled" ); |
php_info_print_table_row(2, "Thread Safety", "disabled" ); |
| #endif |
#endif |
| |
|
| php_info_print_table_row(2, "Zend Memory Manager", is_zend_mm(TSRMLS_C) ? "enabled" : "disabled" ); | #ifdef ZEND_SIGNALS |
| php_info_print_table_row(2, "Zend Signal Handling", "enabled" ); |
| #ifdef ZEND_MULTIBYTE | |
| php_info_print_table_row(2, "Zend Multibyte Support", "enabled"); | |
| #else |
#else |
| php_info_print_table_row(2, "Zend Multibyte Support", "disabled"); | php_info_print_table_row(2, "Zend Signal Handling", "disabled" ); |
| #endif |
#endif |
| |
|
| #if HAVE_IPV6 | php_info_print_table_row(2, "Zend Memory Manager", is_zend_mm(TSRMLS_C) ? "enabled" : "disabled" ); |
| php_info_print_table_row(2, "IPv6 Support", "enabled" ); | |
| #else | |
| php_info_print_table_row(2, "IPv6 Support", "disabled" ); | |
| #endif | |
| { | |
| HashTable *url_stream_wrappers_hash; | |
| char *stream_protocol, *stream_protocols_buf = NULL; | |
| int stream_protocol_len, stream_protocols_buf_len = 0; | |
| ulong num_key; | |
| |
|
| if ((url_stream_wrappers_hash = php_stream_get_url_stream_wrappers_hash())) { |
|
| HashPosition pos; |
|
| for (zend_hash_internal_pointer_reset_ex(url_stream_wrappers_hash, &pos); |
|
| zend_hash_get_current_key_ex(url_stream_wrappers_hash, &stream_protocol, (uint *)&stream_protocol_len, &num_key, 0, &pos) == HASH_KEY_IS_STRING; |
|
| zend_hash_move_forward_ex(url_stream_wrappers_hash, &pos)) { |
|
| stream_protocols_buf = erealloc(stream_protocols_buf, stream_protocols_buf_len + stream_protocol_len + 2 + 1); |
|
| memcpy(stream_protocols_buf + stream_protocols_buf_len, stream_protocol, stream_protocol_len - 1); |
|
| stream_protocols_buf[stream_protocols_buf_len + stream_protocol_len - 1] = ','; |
|
| stream_protocols_buf[stream_protocols_buf_len + stream_protocol_len] = ' '; |
|
| stream_protocols_buf_len += stream_protocol_len + 1; |
|
| } |
|
| if (stream_protocols_buf) { |
|
| stream_protocols_buf[stream_protocols_buf_len - 2] = ' '; |
|
| stream_protocols_buf[stream_protocols_buf_len] = 0; |
|
| php_info_print_table_row(2, "Registered PHP Streams", stream_protocols_buf); |
|
| efree(stream_protocols_buf); |
|
| } else { |
|
| /* Any chances we will ever hit this? */ |
|
| php_info_print_table_row(2, "Registered PHP Streams", "no streams registered"); |
|
| } |
|
| } else { |
|
| /* Any chances we will ever hit this? */ |
|
| php_info_print_table_row(2, "PHP Streams", "disabled"); /* ?? */ |
|
| } |
|
| } |
|
| |
|
| { |
{ |
| HashTable *stream_xport_hash; | const zend_multibyte_functions *functions = zend_multibyte_get_functions(TSRMLS_C); |
| char *xport_name, *xport_buf = NULL; | char *descr; |
| int xport_name_len, xport_buf_len = 0, xport_buf_size = 0; | if (functions) { |
| ulong num_key; | spprintf(&descr, 0, "provided by %s", functions->provider_name); |
| |
| if ((stream_xport_hash = php_stream_xport_get_hash())) { | |
| HashPosition pos; | |
| for(zend_hash_internal_pointer_reset_ex(stream_xport_hash, &pos); | |
| zend_hash_get_current_key_ex(stream_xport_hash, &xport_name, (uint *)&xport_name_len, &num_key, 0, &pos) == HASH_KEY_IS_STRING; | |
| zend_hash_move_forward_ex(stream_xport_hash, &pos)) { | |
| if (xport_buf_len + xport_name_len + 2 > xport_buf_size) { | |
| while (xport_buf_len + xport_name_len + 2 > xport_buf_size) { | |
| xport_buf_size += 256; | |
| } | |
| if (xport_buf) { | |
| xport_buf = erealloc(xport_buf, xport_buf_size); | |
| } else { | |
| xport_buf = emalloc(xport_buf_size); | |
| } | |
| } | |
| if (xport_buf_len > 0) { | |
| xport_buf[xport_buf_len++] = ','; | |
| xport_buf[xport_buf_len++] = ' '; | |
| } | |
| memcpy(xport_buf + xport_buf_len, xport_name, xport_name_len - 1); | |
| xport_buf_len += xport_name_len - 1; | |
| xport_buf[xport_buf_len] = '\0'; | |
| } | |
| if (xport_buf) { | |
| php_info_print_table_row(2, "Registered Stream Socket Transports", xport_buf); | |
| efree(xport_buf); | |
| } else { | |
| /* Any chances we will ever hit this? */ | |
| php_info_print_table_row(2, "Registered Stream Socket Transports", "no transports registered"); | |
| } | |
| } else { |
} else { |
| /* Any chances we will ever hit this? */ | descr = estrdup("disabled"); |
| php_info_print_table_row(2, "Stream Socket Transports", "disabled"); /* ?? */ | |
| } |
} |
| |
php_info_print_table_row(2, "Zend Multibyte Support", descr); |
| |
efree(descr); |
| } |
} |
| |
|
| { | #if HAVE_IPV6 |
| HashTable *stream_filter_hash; | php_info_print_table_row(2, "IPv6 Support", "enabled" ); |
| char *filter_name, *filter_buf = NULL; | #else |
| int filter_name_len, filter_buf_len = 0, filter_buf_size = 0; | php_info_print_table_row(2, "IPv6 Support", "disabled" ); |
| ulong num_key; | #endif |
| |
|
| if ((stream_filter_hash = php_get_stream_filters_hash())) { | #if HAVE_DTRACE |
| HashPosition pos; | php_info_print_table_row(2, "DTrace Support", "enabled" ); |
| for(zend_hash_internal_pointer_reset_ex(stream_filter_hash, &pos); | #else |
| zend_hash_get_current_key_ex(stream_filter_hash, &filter_name, (uint *)&filter_name_len, &num_key, 0, &pos) == HASH_KEY_IS_STRING; | php_info_print_table_row(2, "DTrace Support", "disabled" ); |
| zend_hash_move_forward_ex(stream_filter_hash, &pos)) { | #endif |
| if (filter_buf_len + filter_name_len + 2 > filter_buf_size) { | |
| while (filter_buf_len + filter_name_len + 2 > filter_buf_size) { | |
| filter_buf_size += 256; | |
| } | |
| if (filter_buf) { | |
| filter_buf = erealloc(filter_buf, filter_buf_size); | |
| } else { | |
| filter_buf = emalloc(filter_buf_size); | |
| } | |
| } | |
| if (filter_buf_len > 0) { | |
| filter_buf[filter_buf_len++] = ','; | |
| filter_buf[filter_buf_len++] = ' '; | |
| } | |
| memcpy(filter_buf + filter_buf_len, filter_name, filter_name_len - 1); | |
| filter_buf_len += filter_name_len - 1; | |
| filter_buf[filter_buf_len] = '\0'; | |
| } | |
| if (filter_buf) { | |
| php_info_print_table_row(2, "Registered Stream Filters", filter_buf); | |
| efree(filter_buf); | |
| } else { | |
| /* Any chances we will ever hit this? */ | |
| php_info_print_table_row(2, "Registered Stream Filters", "no filters registered"); | |
| } | |
| } else { | |
| /* Any chances we will ever hit this? */ | |
| php_info_print_table_row(2, "Stream Filters", "disabled"); /* ?? */ | |
| } | |
| } | |
| |
|
| |
php_info_print_stream_hash("PHP Streams", php_stream_get_url_stream_wrappers_hash() TSRMLS_CC); |
| |
php_info_print_stream_hash("Stream Socket Transports", php_stream_xport_get_hash() TSRMLS_CC); |
| |
php_info_print_stream_hash("Stream Filters", php_get_stream_filters_hash() TSRMLS_CC); |
| |
|
| php_info_print_table_end(); |
php_info_print_table_end(); |
| |
|
| /* Suhosin Patch */ |
|
| php_info_print_box_start(0); |
|
| if (expose_php && !sapi_module.phpinfo_as_text) { |
|
| PUTS("<a href=\"http://www.suhosin.org\"><img border=\"0\" src=\""); |
|
| if (SG(request_info).request_uri) { |
|
| char *elem_esc = php_info_html_esc(SG(request_info).request_uri TSRMLS_CC); |
|
| PUTS(elem_esc); |
|
| efree(elem_esc); |
|
| } |
|
| PUTS("?="SUHOSIN_LOGO_GUID"\" alt=\"Suhosin logo\" /></a>\n"); |
|
| } |
|
| PUTS("This server is protected with the Suhosin Patch "); |
|
| if (sapi_module.phpinfo_as_text) { |
|
| PUTS(SUHOSIN_PATCH_VERSION); |
|
| } else { |
|
| zend_html_puts(SUHOSIN_PATCH_VERSION, strlen(SUHOSIN_PATCH_VERSION) TSRMLS_CC); |
|
| } |
|
| PUTS(!sapi_module.phpinfo_as_text?"<br />":"\n"); |
|
| if (sapi_module.phpinfo_as_text) { |
|
| PUTS("Copyright (c) 2006-2007 Hardened-PHP Project\n"); |
|
| PUTS("Copyright (c) 2007-2012 SektionEins GmbH\n"); |
|
| } else { |
|
| PUTS("Copyright (c) 2006-2007 <a href=\"http://www.hardened-php.net/\">Hardened-PHP Project</a>\n"); |
|
| PUTS("Copyright (c) 2007-2012 <a href=\"http://www.sektioneins.de/\">SektionEins GmbH</a>\n"); |
|
| } |
|
| php_info_print_box_end(); |
|
| |
|
| /* Zend Engine */ |
/* Zend Engine */ |
| php_info_print_box_start(0); |
php_info_print_box_start(0); |
| if (expose_php && !sapi_module.phpinfo_as_text) { |
if (expose_php && !sapi_module.phpinfo_as_text) { |
| PUTS("<a href=\"http://www.zend.com/\"><img border=\"0\" src=\""); | php_info_print("<a href=\"http://www.zend.com/\"><img border=\"0\" src=\""); |
| if (SG(request_info).request_uri) { | php_info_print_request_uri(TSRMLS_C); |
| char *elem_esc = php_info_html_esc(SG(request_info).request_uri TSRMLS_CC); | php_info_print("?="ZEND_LOGO_GUID"\" alt=\"Zend logo\" /></a>\n"); |
| PUTS(elem_esc); | |
| efree(elem_esc); | |
| } | |
| PUTS("?="ZEND_LOGO_GUID"\" alt=\"Zend logo\" /></a>\n"); | |
| } |
} |
| PUTS("This program makes use of the Zend Scripting Language Engine:"); | php_info_print("This program makes use of the Zend Scripting Language Engine:"); |
| PUTS(!sapi_module.phpinfo_as_text?"<br />":"\n"); | php_info_print(!sapi_module.phpinfo_as_text?"<br />":"\n"); |
| if (sapi_module.phpinfo_as_text) { |
if (sapi_module.phpinfo_as_text) { |
| PUTS(zend_version); | php_info_print(zend_version); |
| } else { |
} else { |
| zend_html_puts(zend_version, strlen(zend_version) TSRMLS_CC); |
zend_html_puts(zend_version, strlen(zend_version) TSRMLS_CC); |
| } |
} |
|
Line 929 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 809 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| |
|
| if ((flag & PHP_INFO_CREDITS) && expose_php && !sapi_module.phpinfo_as_text) { |
if ((flag & PHP_INFO_CREDITS) && expose_php && !sapi_module.phpinfo_as_text) { |
| php_info_print_hr(); |
php_info_print_hr(); |
| PUTS("<h1><a href=\""); | php_info_print("<h1><a href=\""); |
| if (SG(request_info).request_uri) { | php_info_print_request_uri(TSRMLS_C); |
| char *elem_esc = php_info_html_esc(SG(request_info).request_uri TSRMLS_CC); | php_info_print("?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000\">"); |
| PUTS(elem_esc); | php_info_print("PHP Credits"); |
| efree(elem_esc); | php_info_print("</a></h1>\n"); |
| } | |
| PUTS("?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000\">"); | |
| PUTS("PHP Credits"); | |
| PUTS("</a></h1>\n"); | |
| } |
} |
| |
|
| zend_ini_sort_entries(TSRMLS_C); |
zend_ini_sort_entries(TSRMLS_C); |
|
Line 945 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 821 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| if (flag & PHP_INFO_CONFIGURATION) { |
if (flag & PHP_INFO_CONFIGURATION) { |
| php_info_print_hr(); |
php_info_print_hr(); |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("<h1>Configuration</h1>\n"); | php_info_print("<h1>Configuration</h1>\n"); |
| } else { |
} else { |
| SECTION("Configuration"); |
SECTION("Configuration"); |
| } |
} |
|
Line 1011 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 887 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE) { |
if (zend_hash_find(&EG(symbol_table), "PHP_AUTH_PW", sizeof("PHP_AUTH_PW"), (void **) &data) != FAILURE) { |
| php_info_print_table_row(2, "PHP_AUTH_PW", Z_STRVAL_PP(data)); |
php_info_print_table_row(2, "PHP_AUTH_PW", Z_STRVAL_PP(data)); |
| } |
} |
| php_print_gpcse_array("_REQUEST", sizeof("_REQUEST")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_REQUEST") TSRMLS_CC); |
| php_print_gpcse_array("_GET", sizeof("_GET")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_GET") TSRMLS_CC); |
| php_print_gpcse_array("_POST", sizeof("_POST")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_POST") TSRMLS_CC); |
| php_print_gpcse_array("_FILES", sizeof("_FILES")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_FILES") TSRMLS_CC); |
| php_print_gpcse_array("_COOKIE", sizeof("_COOKIE")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_COOKIE") TSRMLS_CC); |
| php_print_gpcse_array("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_SERVER") TSRMLS_CC); |
| php_print_gpcse_array("_ENV", sizeof("_ENV")-1 TSRMLS_CC); | php_print_gpcse_array(ZEND_STRL("_ENV") TSRMLS_CC); |
| php_info_print_table_end(); |
php_info_print_table_end(); |
| } |
} |
| |
|
|
Line 1025 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
Line 901 PHPAPI void php_print_info(int flag TSRMLS_DC)
|
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| SECTION("PHP License"); |
SECTION("PHP License"); |
| php_info_print_box_start(0); |
php_info_print_box_start(0); |
| PUTS("<p>\n"); | php_info_print("<p>\n"); |
| PUTS("This program is free software; you can redistribute it and/or modify "); | php_info_print("This program is free software; you can redistribute it and/or modify "); |
| PUTS("it under the terms of the PHP License as published by the PHP Group "); | php_info_print("it under the terms of the PHP License as published by the PHP Group "); |
| PUTS("and included in the distribution in the file: LICENSE\n"); | php_info_print("and included in the distribution in the file: LICENSE\n"); |
| PUTS("</p>\n"); | php_info_print("</p>\n"); |
| PUTS("<p>"); | php_info_print("<p>"); |
| PUTS("This program is distributed in the hope that it will be useful, "); | php_info_print("This program is distributed in the hope that it will be useful, "); |
| PUTS("but WITHOUT ANY WARRANTY; without even the implied warranty of "); | php_info_print("but WITHOUT ANY WARRANTY; without even the implied warranty of "); |
| PUTS("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); | php_info_print("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); |
| PUTS("</p>\n"); | php_info_print("</p>\n"); |
| PUTS("<p>"); | php_info_print("<p>"); |
| PUTS("If you did not receive a copy of the PHP license, or have any questions about "); | php_info_print("If you did not receive a copy of the PHP license, or have any questions about "); |
| PUTS("PHP licensing, please contact license@php.net.\n"); | php_info_print("PHP licensing, please contact license@php.net.\n"); |
| PUTS("</p>\n"); | php_info_print("</p>\n"); |
| php_info_print_box_end(); |
php_info_print_box_end(); |
| } else { |
} else { |
| PUTS("\nPHP License\n"); | php_info_print("\nPHP License\n"); |
| PUTS("This program is free software; you can redistribute it and/or modify\n"); | php_info_print("This program is free software; you can redistribute it and/or modify\n"); |
| PUTS("it under the terms of the PHP License as published by the PHP Group\n"); | php_info_print("it under the terms of the PHP License as published by the PHP Group\n"); |
| PUTS("and included in the distribution in the file: LICENSE\n"); | php_info_print("and included in the distribution in the file: LICENSE\n"); |
| PUTS("\n"); | php_info_print("\n"); |
| PUTS("This program is distributed in the hope that it will be useful,\n"); | php_info_print("This program is distributed in the hope that it will be useful,\n"); |
| PUTS("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); | php_info_print("but WITHOUT ANY WARRANTY; without even the implied warranty of\n"); |
| PUTS("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); | php_info_print("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"); |
| PUTS("\n"); | php_info_print("\n"); |
| PUTS("If you did not receive a copy of the PHP license, or have any\n"); | php_info_print("If you did not receive a copy of the PHP license, or have any\n"); |
| PUTS("questions about PHP licensing, please contact license@php.net.\n"); | php_info_print("questions about PHP licensing, please contact license@php.net.\n"); |
| } |
} |
| } |
} |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("</div></body></html>"); | php_info_print("</div></body></html>"); |
| } |
} |
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| PHPAPI void php_info_print_table_start(void) /* {{{ */ |
| PHPAPI void php_info_print_table_start(void) | |
| { |
{ |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<table border=\"0\" cellpadding=\"3\" width=\"600\">\n"); | php_info_print("<table border=\"0\" cellpadding=\"3\" width=\"600\">\n"); |
| } else { |
} else { |
| php_printf("\n"); | php_info_print("\n"); |
| } |
} |
| } |
} |
| |
/* }}} */ |
| |
|
| PHPAPI void php_info_print_table_end(void) | PHPAPI void php_info_print_table_end(void) /* {{{ */ |
| { |
{ |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("</table><br />\n"); | php_info_print("</table><br />\n"); |
| } |
} |
| |
|
| } |
} |
| |
/* }}} */ |
| |
|
| PHPAPI void php_info_print_box_start(int flag) | PHPAPI void php_info_print_box_start(int flag) /* {{{ */ |
| { |
{ |
| php_info_print_table_start(); |
php_info_print_table_start(); |
| if (flag) { |
if (flag) { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<tr class=\"h\"><td>\n"); | php_info_print("<tr class=\"h\"><td>\n"); |
| } |
} |
| } else { |
} else { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<tr class=\"v\"><td>\n"); | php_info_print("<tr class=\"v\"><td>\n"); |
| } else { |
} else { |
| php_printf("\n"); | php_info_print("\n"); |
| } |
} |
| } |
} |
| } |
} |
| |
/* }}} */ |
| |
|
| PHPAPI void php_info_print_box_end(void) | PHPAPI void php_info_print_box_end(void) /* {{{ */ |
| { |
{ |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("</td></tr>\n"); | php_info_print("</td></tr>\n"); |
| } |
} |
| php_info_print_table_end(); |
php_info_print_table_end(); |
| } |
} |
| |
/* }}} */ |
| |
|
| PHPAPI void php_info_print_hr(void) | PHPAPI void php_info_print_hr(void) /* {{{ */ |
| { |
{ |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<hr />\n"); | php_info_print("<hr />\n"); |
| } else { |
} else { |
| php_printf("\n\n _______________________________________________________________________\n\n"); | php_info_print("\n\n _______________________________________________________________________\n\n"); |
| } |
} |
| } |
} |
| |
/* }}} */ |
| |
|
| PHPAPI void php_info_print_table_colspan_header(int num_cols, char *header) | PHPAPI void php_info_print_table_colspan_header(int num_cols, char *header) /* {{{ */ |
| { |
{ |
| int spaces; |
int spaces; |
| |
|
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<tr class=\"h\"><th colspan=\"%d\">%s</th></tr>\n", num_cols, header ); | php_info_printf("<tr class=\"h\"><th colspan=\"%d\">%s</th></tr>\n", num_cols, header ); |
| } else { |
} else { |
| spaces = (74 - strlen(header)); |
spaces = (74 - strlen(header)); |
| php_printf("%*s%s%*s\n", (int)(spaces/2), " ", header, (int)(spaces/2), " "); | php_info_printf("%*s%s%*s\n", (int)(spaces/2), " ", header, (int)(spaces/2), " "); |
| } |
} |
| } |
} |
| |
/* }}} */ |
| |
|
| /* {{{ php_info_print_table_header |
/* {{{ php_info_print_table_header |
| */ |
*/ |
|
Line 1131 PHPAPI void php_info_print_table_header(int num_cols,
|
Line 1012 PHPAPI void php_info_print_table_header(int num_cols,
|
| va_list row_elements; |
va_list row_elements; |
| char *row_element; |
char *row_element; |
| |
|
| TSRMLS_FETCH(); |
|
| |
|
| va_start(row_elements, num_cols); |
va_start(row_elements, num_cols); |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<tr class=\"h\">"); | php_info_print("<tr class=\"h\">"); |
| } |
} |
| for (i=0; i<num_cols; i++) { |
for (i=0; i<num_cols; i++) { |
| row_element = va_arg(row_elements, char *); |
row_element = va_arg(row_elements, char *); |
|
Line 1143 PHPAPI void php_info_print_table_header(int num_cols,
|
Line 1022 PHPAPI void php_info_print_table_header(int num_cols,
|
| row_element = " "; |
row_element = " "; |
| } |
} |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS("<th>"); | php_info_print("<th>"); |
| PUTS(row_element); | php_info_print(row_element); |
| PUTS("</th>"); | php_info_print("</th>"); |
| } else { |
} else { |
| PUTS(row_element); | php_info_print(row_element); |
| if (i < num_cols-1) { |
if (i < num_cols-1) { |
| PUTS(" => "); | php_info_print(" => "); |
| } else { |
} else { |
| PUTS("\n"); | php_info_print("\n"); |
| } | } |
| } | } |
| } |
} |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("</tr>\n"); | php_info_print("</tr>\n"); |
| } | } |
| |
|
| va_end(row_elements); |
va_end(row_elements); |
| } |
} |
|
Line 1170 static void php_info_print_table_row_internal(int num_
|
Line 1049 static void php_info_print_table_row_internal(int num_
|
| { |
{ |
| int i; |
int i; |
| char *row_element; |
char *row_element; |
| char *elem_esc = NULL; |
|
| /* |
|
| int elem_esc_len; |
|
| */ |
|
| |
|
| TSRMLS_FETCH(); |
|
| |
|
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<tr>"); | php_info_print("<tr>"); |
| } |
} |
| for (i=0; i<num_cols; i++) { |
for (i=0; i<num_cols; i++) { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("<td class=\"%s\">", | php_info_printf("<td class=\"%s\">", |
| (i==0 ? "e" : value_class ) |
(i==0 ? "e" : value_class ) |
| ); |
); |
| } |
} |
| row_element = va_arg(row_elements, char *); |
row_element = va_arg(row_elements, char *); |
| if (!row_element || !*row_element) { |
if (!row_element || !*row_element) { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| PUTS( "<i>no value</i>" ); | php_info_print( "<i>no value</i>" ); |
| } else { |
} else { |
| PUTS( " " ); | php_info_print( " " ); |
| } |
} |
| } else { |
} else { |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| elem_esc = php_info_html_esc(row_element TSRMLS_CC); | php_info_print_html_esc(row_element, strlen(row_element)); |
| PUTS(elem_esc); | |
| efree(elem_esc); | |
| } else { |
} else { |
| PUTS(row_element); | php_info_print(row_element); |
| if (i < num_cols-1) { |
if (i < num_cols-1) { |
| PUTS(" => "); | php_info_print(" => "); |
| } |
} |
| } |
} |
| } |
} |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf(" </td>"); | php_info_print(" </td>"); |
| } else if (i == (num_cols - 1)) { |
} else if (i == (num_cols - 1)) { |
| PUTS("\n"); | php_info_print("\n"); |
| } |
} |
| } |
} |
| if (!sapi_module.phpinfo_as_text) { |
if (!sapi_module.phpinfo_as_text) { |
| php_printf("</tr>\n"); | php_info_print("</tr>\n"); |
| } |
} |
| } |
} |
| /* }}} */ |
/* }}} */ |
|
Line 1276 PHP_FUNCTION(phpinfo)
|
Line 1147 PHP_FUNCTION(phpinfo)
|
| } |
} |
| |
|
| /* Andale! Andale! Yee-Hah! */ |
/* Andale! Andale! Yee-Hah! */ |
| php_start_ob_buffer(NULL, 4096, 0 TSRMLS_CC); | php_output_start_default(TSRMLS_C); |
| php_print_info(flag TSRMLS_CC); |
php_print_info(flag TSRMLS_CC); |
| php_end_ob_buffer(1, 0 TSRMLS_CC); | php_output_end(TSRMLS_C); |
| |
|
| RETURN_TRUE; |
RETURN_TRUE; |
| } |
} |
|
Line 1289 PHP_FUNCTION(phpinfo)
|
Line 1160 PHP_FUNCTION(phpinfo)
|
| Return the current PHP version */ |
Return the current PHP version */ |
| PHP_FUNCTION(phpversion) |
PHP_FUNCTION(phpversion) |
| { |
{ |
| zval **arg; | char *ext_name = NULL; |
| const char *version; | int ext_name_len = 0; |
| int argc = ZEND_NUM_ARGS(); | |
| |
|
| if (argc == 0) { | if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &ext_name, &ext_name_len) == FAILURE) { |
| | return; |
| | } |
| | |
| | if (!ext_name) { |
| RETURN_STRING(PHP_VERSION, 1); |
RETURN_STRING(PHP_VERSION, 1); |
| } else { |
} else { |
| if (zend_parse_parameters(argc TSRMLS_CC, "Z", &arg) == FAILURE) { | const char *version; |
| return; | version = zend_get_module_version(ext_name); |
| } | |
| | |
| convert_to_string_ex(arg); | |
| version = zend_get_module_version(Z_STRVAL_PP(arg)); | |
| | |
| if (version == NULL) { |
if (version == NULL) { |
| RETURN_FALSE; |
RETURN_FALSE; |
| } |
} |
|
Line 1326 PHP_FUNCTION(phpcredits)
|
Line 1195 PHP_FUNCTION(phpcredits)
|
| } |
} |
| /* }}} */ |
/* }}} */ |
| |
|
| |
|
| /* {{{ php_logo_guid |
/* {{{ php_logo_guid |
| */ |
*/ |
| PHPAPI char *php_logo_guid(void) |
PHPAPI char *php_logo_guid(void) |
|
Line 1354 PHPAPI char *php_logo_guid(void)
|
Line 1222 PHPAPI char *php_logo_guid(void)
|
| Return the special ID used to request the PHP logo in phpinfo screens*/ |
Return the special ID used to request the PHP logo in phpinfo screens*/ |
| PHP_FUNCTION(php_logo_guid) |
PHP_FUNCTION(php_logo_guid) |
| { |
{ |
| |
|
| if (zend_parse_parameters_none() == FAILURE) { |
if (zend_parse_parameters_none() == FAILURE) { |
| return; |
return; |
| } |
} |
|
Line 1367 PHP_FUNCTION(php_logo_guid)
|
Line 1234 PHP_FUNCTION(php_logo_guid)
|
| Return the special ID used to request the PHP logo in phpinfo screens*/ |
Return the special ID used to request the PHP logo in phpinfo screens*/ |
| PHP_FUNCTION(php_real_logo_guid) |
PHP_FUNCTION(php_real_logo_guid) |
| { |
{ |
| |
|
| if (zend_parse_parameters_none() == FAILURE) { |
if (zend_parse_parameters_none() == FAILURE) { |
| return; |
return; |
| } |
} |
|
Line 1423 PHP_FUNCTION(php_uname)
|
Line 1289 PHP_FUNCTION(php_uname)
|
| { |
{ |
| char *mode = "a"; |
char *mode = "a"; |
| int modelen = sizeof("a")-1; |
int modelen = sizeof("a")-1; |
| |
|
| if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &mode, &modelen) == FAILURE) { |
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &mode, &modelen) == FAILURE) { |
| return; |
return; |
| } |
} |