|
|
 |
LV. 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 1. PHP Options/Inf Configuration Options | Name | Default | Changeable | Changelog |
|---|
| assert.active | "1" | PHP_INI_ALL | | | assert.bail | "0" | PHP_INI_ALL | | | assert.warning | "1" | PHP_INI_ALL | | | assert.callback | NULL | PHP_INI_ALL | | | assert.quiet_eval | "0" | PHP_INI_ALL | | | enable_dl | "1" | PHP_INI_SYSTEM | | | max_execution_time | "30" | PHP_INI_ALL | | | max_input_time | "-1" | PHP_INI_PERDIR | Available since PHP 4.3.0. | | magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL in PHP <= 4.2.3. | | magic_quotes_runtime | "0" | PHP_INI_ALL | |
For further details and definitions of the
PHP_INI_* constants, see the Appendix H.
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.
You can not change this setting with ini_set() when
running in safe mode. The only workaround is to turn off safe mode or
by changing the time limit in the php.ini.
Your webserver can have other timeouts. E.g. Apache has
Timeout directive, IIS has CGI timeout function, both
default to 300 seconds. See the webserver documentation for meaning of it.
- max_input_time
integer
This sets the maximum time in seconds a script is allowed to
receive input data, like POST, GET and file uploads.
- 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:
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 2. Pre-defined phpcredits() constants | Constant | Value | Description |
|---|
| 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 3. phpinfo() constants | 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.
| | 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.
|
User Contributed Notes
PHP Options&Information
epost at danieloskarsson dot se
12-Apr-2005 07:35
If you are having troube with unwanted slashes and you can't turn off magic_quotes_gpc in php.ini for some reasons. Then you can reverse the changes with the following script from http://www.sitepoint.com/forums/showpost.php?p=396899
<?php
function strip_magic_quotes($arr) {
foreach ($arr as $k => $v) {
if (is_array($v))
{ $arr[$k] = strip_magic_quotes($v); }
else
{ $arr[$k] = stripslashes($v); }
}
return $arr;
}
if (get_magic_quotes_gpc()) {
if (!empty($_GET)) { $_GET = strip_magic_quotes($_GET); }
if (!empty($_POST)) { $_POST = strip_magic_quotes($_POST); }
if (!empty($_COOKIE)) { $_COOKIE = strip_magic_quotes($_COOKIE); }
}
?>
This worked fine for me fixing what stripslashes() couldn't. The problem was that stripslashes() removed legacy added slashes from my PHP-code which I recieved from the POST-array. With the above function only the slashes added by magic_quotes_gpc() is removed.
gilthansNOSPAAM at gmailSPAAMBLOCK dot com
15-Mar-2005 08:04
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.
kok at mostware dot nl
17-Feb-2005 12:00
It's easy to get confused in all the magic_quotes settings. Therefor, I used this script to clear things up a little. Hope it helps!
Note 1: Use a simple costumer database table with as costumer_id and a costumer_name, named costumer.
Note 2: You'll manually have to set magic_quotes_gpc in the php.ini, since it cannot be changed at runtime. Change it, restart your webserver, run again and see the difference. ;)
-----
<?php
function new_attempt() {
echo 'get_magic_quotes_gpc = ' . get_magic_quotes_gpc() . '<br>';
echo 'get_magic_quotes_runtime = ' . get_magic_quotes_runtime() . '<br>';
$userinput = $_POST['userinput'];
echo "userinput = $userinput<br>";
echo '<i>Update without addslashes</i><br>';
$sql = "update costumer set costumer_name = '$userinput' where costumer_id = 1";
echo "sql = $sql<br>";
echo 'mysql_query = ' . mysql_query ( $sql ) . '<br>';
echo '<i>Update with addslashes</i><br>';
$sql = "update costumer set costumer_name = '" . addslashes($userinput) . "' where costumer_id = 2";
echo "sql addslashes = $sql<br>";
echo 'mysql_query = ' . mysql_query ( $sql ) . '<br>';
echo '<i>Select without stripslashes 2</i><br>';
$sql = "select costumer_name from costumer where costumer_id = 2";
echo "sql = $sql<br>";
$resquery = mysql_query ( $sql );
echo 'mysql_query = ' . $resquery . '<br>';
$resfetch = mysql_fetch_array( $resquery );
echo 'mysql_fetch_array = ' . $resfetch . '<br>';
echo 'array[\'costumer_name\'] = ' . $resfetch['costumer_name'] . '<br>';
echo '<i>Select with stripslashes 2</i><br>';
$sql = "select costumer_name from costumer where costumer_id = 2";
echo "sql = $sql<br>";
$resquery = mysql_query ( $sql );
echo 'mysql_query = ' . $resquery . '<br>';
$resfetch = mysql_fetch_array( $resquery );
echo 'mysql_fetch_array = ' . $resfetch . '<br>';
echo 'array[\'costumer_name\'] stripslashes = ' . stripslashes($resfetch['costumer_name']) . '<br>';
}
?>
<html>
<head>
<title>slashes test</title>
</head>
<body>
<?php
if ( $_POST ) {
mysql_connect ( 'server' , 'user' , 'pass' );
mysql_select_db ( 'database' );
echo '<p><b>set_magic_quotes_runtime = 0</b><br>';
set_magic_quotes_runtime(0);
new_attempt();
echo '</p><p><b>set_magic_quotes_runtime = 1</b><br>';
set_magic_quotes_runtime(1);
new_attempt();
echo '</p>';
}
?>
<p> </p>
<form method="post" name="slashes_form" action="slashes.php">
<input type="text" name="userinput" value="<?=$_POST['userinput']?>"/>
<input type="submit" name="submit" value="test">
</form>
</body>
</html>
Mark
14-Jun-2004 08:37
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.
| |