How to list all the loaded extensions by PHP
PHP is a popular computer language used by thousands of web servers to run various web applications. It is an open-source distributed under the PHP license. The abbreviation PHP originally stands for Personal Home Page Tools also popularly known as Hypertext Preprocessor. The PHP infrastructure is installed on an estimated 82% of all web servers on the Internet. More than 200 million apps and websites developed with PHP are online. Over 5 million software developers use the programming language.
It is a scripting language that runs on the server-side to be used to convert PHP coded text files into machine code by the web server when they are called up. It is platform-independent and can be used on any hardware.
The first PHP interpreter was developed in 1995 by Rasmus Lerdorf, who is considered to be the inventor of PHP. Today PHP has modern semantics and is available in ready-made installation packages for many operating systems. An extensive object-oriented programming language has grown out of this, which is now available in version 8. Extensive information is available for PHP with the help of its broad community of programmers.
PHP is not only to be regarded as a syntactic-formal programming language but also as a technical-strategic platform. Because when we talk about PHP today, we mean not only the PHP-typical syntax but also ready-made PHP installation packages (stacks) that are available for many systems; simple, partly symbiotic database connection and administration; widespread use by commercial web hosts, global infrastructure; diverse programming libraries available; possibility to use well-tested open source solutions; linking with professional IDE and development tools.
get_loaded_extensions
Функция возвращает массив имён всех скомпилированных и загруженных в интерпретаторе PHP модулей.
Список параметров
Возвращать только модули Zend или обычные модули, такие как mysqli. По умолчанию false (возврат обычных модулей).
Возвращаемые значения
Возвращает индексированный массив имён всех модулей.
Примеры
Пример #1 Пример использования get_loaded_extensions()
Результатом выполнения данного примера будет что-то подобное:
Array ( [0] => Core [1] => date [2] => libxml [3] => pcre [4] => sqlite3 [5] => zlib [6] => ctype [7] => dom [8] => fileinfo [9] => filter [10] => hash [11] => json [12] => mbstring [13] => SPL [14] => PDO [15] => session [16] => posix [17] => Reflection [18] => standard [19] => SimpleXML [20] => pdo_sqlite [21] => Phar [22] => tokenizer [23] => xml [24] => xmlreader [25] => xmlwriter [26] => gmp [27] => iconv [28] => intl [29] => bcmath [30] => sodium [31] => Zend OPcache )
Смотрите также
- get_extension_funcs() — Возвращает массив имён функций модуля
- extension_loaded() — Определяет, загружен ли модуль
- dl() — Загружает модуль PHP во время выполнения
- phpinfo() — Выводит информацию о текущей конфигурации PHP
User Contributed Notes
- Опции PHP/информационные функции
- assert_options
- assert
- cli_get_process_title
- cli_set_process_title
- dl
- extension_loaded
- gc_collect_cycles
- gc_disable
- gc_enable
- gc_enabled
- gc_mem_caches
- gc_status
- get_cfg_var
- get_current_user
- get_defined_constants
- get_extension_funcs
- get_include_path
- get_included_files
- get_loaded_extensions
- get_required_files
- get_resources
- getenv
- getlastmod
- getmygid
- getmyinode
- getmypid
- getmyuid
- getopt
- getrusage
- ini_alter
- ini_get_all
- ini_get
- ini_parse_quantity
- ini_restore
- ini_set
- memory_get_peak_usage
- memory_get_usage
- memory_reset_peak_usage
- php_ini_loaded_file
- php_ini_scanned_files
- php_sapi_name
- php_uname
- phpcredits
- phpinfo
- phpversion
- putenv
- set_include_path
- set_time_limit
- sys_get_temp_dir
- version_compare
- zend_thread_id
- zend_version
- get_magic_quotes_gpc
- get_magic_quotes_runtime
- restore_include_path
get_loaded_extensions
This function returns the names of all the modules compiled and loaded in the PHP interpreter.
Parameters
Only return Zend extensions, if not then regular extensions, like mysqli are listed. Defaults to false (return regular extensions).
Return Values
Returns an indexed array of all the modules names.
Examples
Example #1 get_loaded_extensions() Example
The above example will output something similar to:
Array ( [0] => Core [1] => date [2] => libxml [3] => pcre [4] => sqlite3 [5] => zlib [6] => ctype [7] => dom [8] => fileinfo [9] => filter [10] => hash [11] => json [12] => mbstring [13] => SPL [14] => PDO [15] => session [16] => posix [17] => Reflection [18] => standard [19] => SimpleXML [20] => pdo_sqlite [21] => Phar [22] => tokenizer [23] => xml [24] => xmlreader [25] => xmlwriter [26] => gmp [27] => iconv [28] => intl [29] => bcmath [30] => sodium [31] => Zend OPcache )
See Also
- get_extension_funcs() — Returns an array with the names of the functions of a module
- extension_loaded() — Find out whether an extension is loaded
- dl() — Loads a PHP extension at runtime
- phpinfo() — Outputs information about PHP’s configuration
- PHP Options/Info Functions
- assert_options
- assert
- cli_get_process_title
- cli_set_process_title
- dl
- extension_loaded
- gc_collect_cycles
- gc_disable
- gc_enable
- gc_enabled
- gc_mem_caches
- gc_status
- get_cfg_var
- get_current_user
- get_defined_constants
- get_extension_funcs
- get_include_path
- get_included_files
- get_loaded_extensions
- get_required_files
- get_resources
- getenv
- getlastmod
- getmygid
- getmyinode
- getmypid
- getmyuid
- getopt
- getrusage
- ini_alter
- ini_get_all
- ini_get
- ini_parse_quantity
- ini_restore
- ini_set
- memory_get_peak_usage
- memory_get_usage
- memory_reset_peak_usage
- php_ini_loaded_file
- php_ini_scanned_files
- php_sapi_name
- php_uname
- phpcredits
- phpinfo
- phpversion
- putenv
- set_include_path
- set_time_limit
- sys_get_temp_dir
- version_compare
- zend_thread_id
- zend_version
- get_magic_quotes_gpc
- get_magic_quotes_runtime
- restore_include_path
phpinfo
Outputs a large amount of information about the current state of PHP. This includes information about PHP compilation options and extensions, the PHP version, server information and environment (if compiled as a module), the PHP environment, OS version information, paths, master and local values of configuration options, HTTP headers, and the PHP License.
Because every system is setup differently, phpinfo() is commonly used to check configuration settings and for available predefined variables on a given system.
phpinfo() is also a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.
Parameters
The output may be customized by passing one or more of the following constants bitwise values summed together in the optional flags parameter. One can also combine the respective constants or bitwise values together with the bitwise or operator.
phpinfo() options
Name (constant) Value Description INFO_GENERAL 1 The configuration line, php.ini location, build date, Web Server, System and more. INFO_CREDITS 2 PHP Credits. See also phpcredits() . INFO_CONFIGURATION 4 Current Local and Master values for PHP directives. See also ini_get() . INFO_MODULES 8 Loaded modules and their respective settings. See also get_loaded_extensions() . INFO_ENVIRONMENT 16 Environment Variable information that’s also available in $_ENV . INFO_VARIABLES 32 Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server). INFO_LICENSE 64 PHP License information. See also the » license FAQ. INFO_ALL -1 Shows all of the above. Return Values
Always returns true .
Examples
Example #1 phpinfo() Example
// Show all information, defaults to INFO_ALL
phpinfo ();// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo ( INFO_MODULES );Notes
Note:
In versions of PHP before 5.5, parts of the information displayed are disabled when the expose_php configuration setting is set to off . This includes the PHP and Zend logos, and the credits.
Note:
phpinfo() outputs plain text instead of HTML when using the CLI mode.
See Also
- phpversion() — Gets the current PHP version
- phpcredits() — Prints out the credits for PHP
- ini_get() — Gets the value of a configuration option
- ini_set() — Sets the value of a configuration option
- get_loaded_extensions() — Returns an array with the names of all modules compiled and loaded
- Predefined Variables
User Contributed Notes 21 notes
A simple method to style your own phpinfo() output.
ob_start () ;
phpinfo () ;
$pinfo = ob_get_contents () ;
ob_end_clean () ;// the name attribute «module_Zend Optimizer» of an anker-tag is not xhtml valide, so replace it with «module_Zend_Optimizer»
(.*).*$%ms’ , ‘$1’ , $pinfo ) ) ) ;
echo ( str_replace ( «module_Zend Optimizer» , «module_Zend_Optimizer» , preg_replace ( ‘%^.*This is necessary to obtain a W3C validation (XHTML1.0 Transitionnal).
phpinfo’s output is declared with that DTD :
— «System ID» has the wrong url to validate : «DTD/xhtml1-transitional.dtd» rather than «http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»
— Some module names contains space and the function’s output use the name in anchors as ID and NAME. these attributes can’t be validated like that (unique name only).ob_start (); // Capturing
phpinfo (); // phpinfo ()
$info = trim ( ob_get_clean ()); // output// Replace white space in ID and NAME attributes. if exists
$info = preg_replace ( ‘/(id|name)(=[«\’][^ «\’]+) ([^ «\’]*[«\’])/i’ , ‘$1$2_$3’ , $info );$info_doc = new DOMDocument ( ‘1.0’ , ‘utf-8’ );
/* Parse phpinfo’s output
* operator @ used to avoid messages about undefined entities
* or use loadHTML instead
*/
@ $info_doc -> loadXML ( $info );$doc -> documentElement -> appendChild ( // Adding HEAD element to HTML
$doc -> importNode (
$info_doc -> getElementsByTagName ( ‘head’ )-> item ( 0 ),
true // With all the subtree
)
);
$doc -> documentElement -> appendChild ( // Adding BODY element to HTML
$doc -> importNode (
$info_doc -> getElementsByTagName ( ‘body’ )-> item ( 0 ),
true // With all the subtree
)
);// Now you get a clean output and you are able to validate.
/*
echo ($doc->saveXML ());
// OR
echo ($doc->saveHTML ());
*/// By that way it’s easy to add some style declaration :
$style = $doc -> getElementsByTagName ( ‘style’ )-> item ( 0 );
$style -> appendChild (
$doc -> createTextNode (
‘/* SOME NEW CSS RULES TO ADD TO THE FUNCTION OUTPUT */’
)
);// to add some more informations to display :
$body = $doc -> getElementsByTagName ( ‘body’ )-> item ( 0 );
$element = $doc -> createElement ( ‘p’ );
$element -> appendChild (
$doc -> createTextNode (
‘SOME NEW CONTENT TO DISPLAY’
)
);
$body -> appendChild ( $element );// to add a new header :
$head = $doc -> getElementsByTagName ( ‘head’ )-> item ( 0 );
$meta = $doc -> createElement ( ‘meta’ );
$meta -> setAttribute ( ‘name’ , ‘author’ );
$meta -> setAttribute ( ‘content’ , ‘arimbourg at ariworld dot eu’ );
$head -> appendChild ( $meta );// As you wish, take the rest of the output and add it for debugging
$out = ob_get_clean ();$pre = $doc -> createElement ( ‘div’ ); // or pre
$pre -> setAttribute ( ‘style’ , ‘white-space: pre;’ ); // for a div element, useless with pre
$pre -> appendChild ( $doc -> createTextNode ( $out ));
$body -> appendChild ( $pre );$doc -> formatOutput = true ; // For a nice indentation
$doc -> saveXML ();?>
All that could be done with only RegExp but I prefer the use of DOM for manipulating documents