search for in the  
<imap_utf8assert_options>
Last updated: Thu, 19 May 2005

LV. PHP Options&Information

Introduction

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.

Requirements

No external libraries are needed to build this extension.

Installation

There is no installation needed to use these functions; they are part of the PHP core.

Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Table 1. PHP Options/Inf Configuration Options

NameDefaultChangeableChangelog
assert.active"1"PHP_INI_ALL 
assert.bail"0"PHP_INI_ALL 
assert.warning"1"PHP_INI_ALL 
assert.callbackNULLPHP_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_PERDIRAvailable since PHP 4.3.0.
magic_quotes_gpc"1"PHP_INI_PERDIRPHP_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.

Resource Types

This extension has no resource types defined.

Predefined Constants

The constants below are always available as part of the PHP core.

Table 2. Pre-defined phpcredits() constants

ConstantValueDescription
CREDITS_GROUP1A list of the core developers
CREDITS_GENERAL2 General credits: Language design and concept, PHP authors and SAPI module.
CREDITS_SAPI4 A list of the server API modules for PHP, and their authors.
CREDITS_MODULES8 A list of the extension modules for PHP, and their authors.
CREDITS_DOCS16 The credits for the documentation team.
CREDITS_FULLPAGE32 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_QA64 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

ConstantValueDescription
INFO_GENERAL1 The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS2 PHP Credits. See also phpcredits().
INFO_CONFIGURATION4 Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES8 Loaded modules and their respective settings.
INFO_ENVIRONMENT16 Environment Variable information that's also available in $_ENV.
INFO_VARIABLES32 Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE64 PHP License information. See also the license faq.
INFO_ALL-1 Shows all of the above. This is the default value.

ASSERT_ACTIVE (integer)

ASSERT_CALLBACK (integer)

ASSERT_BAIL (integer)

ASSERT_WARNING (integer)

ASSERT_QUIET_EVAL (integer)

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_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
version_compare --  Compares two "PHP-standardized" version number strings
zend_logo_guid -- Gets the Zend guid
zend_version -- Gets the version of the current Zend engine


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() {
  
      
// Show what the settings are
      
echo 'get_magic_quotes_gpc = ' . get_magic_quotes_gpc() . '<br>';
       echo
'get_magic_quotes_runtime = ' . get_magic_quotes_runtime() . '<br>';
      
      
// Put userinput in var and show this
      
$userinput = $_POST['userinput'];
       echo
"userinput = $userinput<br>";
      
      
// Update without addslashes
      
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>';
      
      
// Update with addslashes
      
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>';
  
      
// Select without stripslashes 2
      
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>';
      
      
// Select with stripslashes 2
      
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 ) {
  
      
// database connection
      
mysql_connect ( 'server' , 'user' , 'pass' );
      
mysql_select_db ( 'database' );
      
      
// Try both options
      
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.

<imap_utf8assert_options>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 18:35:34 2005 EDT