The manual states above:
The default is to allow dynamic loading, except when using safe mode. In safe mode, it's always impossible to use dl().
...however, on the manual page for dl(), it states:
Note: dl() is not supported in multithreaded Web servers. Use the extensions statement in your php.ini when operating under such an environment. However, the CGI and CLI build are not affected !
Note: As of PHP 5, the dl() function is deprecated in every SAPI except CLI. Use Extension Loading Directives method instead.
Note: Since PHP 6 this function is disabled in all SAPIs, except CLI, CGI and embed.
CXXIV. PHP Options&Information
This functions enable you to get a lot of information about PHP itself, e.g. runtime configuration, loaded extensions, version and much more. You'll also find functions to set options for your running PHP. The probably best known function of PHP - phpinfo() - can be found here.
No external libraries are needed to build this extension.
There is no installation needed to use these functions; they are part of the PHP core.
The behaviour of these functions is affected by settings in php.ini.
Table 257. PHP Options/Inf Configuration Options
|max_input_time||"-1"||PHP_INI_PERDIR||Available since PHP 4.3.0.|
|max_input_nesting_level||"64"||PHP_INI_SYSTEM|PHP_INI_PERDIR||Available since PHP 5.2.2 and 4.4.8. Note that the default value in PHP 4.4.x is 500.|
|magic_quotes_gpc||"1"||PHP_INI_PERDIR||PHP_INI_ALL in PHP <= 4.2.3.|
For further details and definitions of the PHP_INI_* constants, see the Appendix I, php.ini directives.
Here's a short explanation of the configuration directives.
- assert.active boolean
Enable assert() evaluation.
- assert.bail boolean
Terminate script execution on failed assertions.
- assert.warning boolean
Issue a PHP warning for each failed assertion.
- assert.callback string
user function to call on failed assertions
- assert.quiet_eval boolean
Use the current setting of error_reporting() during assertion expression evaluation. If enabled, no errors are shown (implicit error_reporting(0)) while evaluation. If disabled, errors are shown according to the settings of error_reporting()
- enable_dl boolean
This directive is really only useful in the Apache module version of PHP. You can turn dynamic loading of PHP extensions with dl() on and off per virtual server or per directory.
The main reason for turning dynamic loading off is security. With dynamic loading, it's possible to ignore all open_basedir restrictions. The default is to allow dynamic loading, except when using safe mode. In safe mode, it's always impossible to use dl().
- max_execution_time integer
This sets the maximum time in seconds a script is allowed to run before it is terminated by the parser. This helps prevent poorly written scripts from tying up the server. The default setting is 30.
The maximum execution time is not affected by system calls, stream operations etc. Please see the set_time_limit() function for more details.
Your web server can have other timeouts. E.g. Apache has Timeout directive, IIS has CGI timeout function, both default to 300 seconds. See the web server documentation for meaning of it.
- max_input_time integer
This sets the maximum time in seconds a script is allowed to parse input data, like POST, GET and file uploads.
- max_input_nesting_level integer
- magic_quotes_gpc boolean
Sets the magic_quotes state for GPC (Get/Post/Cookie) operations. When magic_quotes are on, all ' (single-quote), " (double quote), \ (backslash) and NUL's are escaped with a backslash automatically.
Note: In PHP 4, also $_ENV variables are escaped.
Note: If the magic_quotes_sybase directive is also ON it will completely override magic_quotes_gpc. Having both directives enabled means only single quotes are escaped as ''. Double quotes, backslashes and NUL's will remain untouched and unescaped.
See also get_magic_quotes_gpc()
- magic_quotes_runtime boolean
If magic_quotes_runtime is enabled, most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash. If magic_quotes_sybase is also on, a single-quote is escaped with a single-quote instead of a backslash.
This extension has no resource types defined.
The constants below are always available as part of the PHP core.
Table 258. Pre-defined phpcredits() constants
|CREDITS_GROUP||1||A list of the core developers|
|CREDITS_GENERAL||2||General credits: Language design and concept, PHP authors and SAPI module.|
|CREDITS_SAPI||4||A list of the server API modules for PHP, and their authors.|
|CREDITS_MODULES||8||A list of the extension modules for PHP, and their authors.|
|CREDITS_DOCS||16||The credits for the documentation team.|
|CREDITS_FULLPAGE||32||Usually used in combination with the other flags. Indicates that a complete stand-alone HTML page needs to be printed including the information indicated by the other flags.|
|CREDITS_QA||64||The credits for the quality assurance team.|
|CREDITS_ALL||-1||All the credits, equivalent to using: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. It generates a complete stand-alone HTML page with the appropriate tags. This is the default value.|
Table 259. phpinfo() constants
|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.|
|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. This is the default value.|
Table of Contents
- assert_options — Set/get the various assert flags
- assert — Checks if assertion is FALSE
- dl — Loads a PHP extension at runtime
- extension_loaded — Find out whether an extension is loaded
- get_cfg_var — Gets the value of a PHP configuration option
- get_current_user — Gets the name of the owner of the current PHP script
- get_defined_constants — Returns an associative array with the names of all the constants and their values
- get_extension_funcs — Returns an array with the names of the functions of a module
- get_include_path — Gets the current include_path configuration option
- get_included_files — Returns an array with the names of included or required files
- get_loaded_extensions — Returns an array with the names of all modules compiled and loaded
- get_magic_quotes_gpc — Gets the current configuration setting of magic quotes gpc
- get_magic_quotes_runtime — Gets the current active configuration setting of magic_quotes_runtime
- get_required_files — Alias of get_included_files()
- getenv — Gets the value of an environment variable
- getlastmod — Gets time of last page modification
- getmygid — Get PHP script owner's GID
- getmyinode — Gets the inode of the current script
- getmypid — Gets PHP's process ID
- getmyuid — Gets PHP script owner's UID
- getopt — Gets options from the command line argument list
- getrusage — Gets the current resource usages
- ini_alter — Alias of ini_set()
- ini_get_all — Gets all configuration options
- ini_get — Gets the value of a configuration option
- ini_restore — Restores the value of a configuration option
- ini_set — Sets the value of a configuration option
- main — Dummy for main()
- memory_get_peak_usage — Returns the peak of memory allocated by PHP
- memory_get_usage — Returns the amount of memory allocated to PHP
- php_ini_scanned_files — Return a list of .ini files parsed from the additional ini dir
- php_logo_guid — Gets the logo guid
- php_sapi_name — Returns the type of interface between web server and PHP
- php_uname — Returns information about the operating system PHP is running on
- phpcredits — Prints out the credits for PHP
- phpinfo — Outputs lots of PHP information
- phpversion — Gets the current PHP version
- putenv — Sets the value of an environment variable
- restore_include_path — Restores the value of the include_path configuration option
- set_include_path — Sets the include_path configuration option
- set_magic_quotes_runtime — Sets the current active configuration setting of magic_quotes_runtime
- set_time_limit — Limits the maximum execution time
- sys_get_temp_dir — Returns directory path used for temporary files
- version_compare — Compares two "PHP-standardized" version number strings
- zend_logo_guid — Gets the Zend guid
- zend_thread_id — Returns a unique identifier for the current thread
- zend_version — Gets the version of the current Zend engine
Note: when magic_quotes_gpc is ON, it will also slash values inside both $_SERVER['QUERY_STRING'] and $_SERVER['SCRIPT_NAME'] (and equivalents) will also be slashed.
You probably don't want to set "magic_quotes_runtime" because it affects even binary file read/write operations. This is especially problematic if you include someone else's library that depends on binary read/write. If you enable "magic_quotes_runtime", be sure to use set_magic_quotes_runtime() function call to disable it before calling someone else's library that does binary read/write.