string ini_set (string $varname
, string$newvalue
) 或ini_alter()
在运行时修改php配置
echo ini_get('display_errors');
if (!ini_get('display_errors')) {
ini_set('display_errors', 1);
}
echo ini_get('display_errors');
string ini_get ( string $varname
)获取PHP配置
/*
Our php.ini contains the following settings:
display_errors = On
register_globals = Off
post_max_size = 8M
*/
echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));
function return_bytes($val) {
$val = trim($val);
$last = strtolower($val[strlen($val)-1]);
switch($last) {
// The 'G' modifier is available since PHP 5.1.0
case 'g':
$val *= 1024;
case 'm':
$val *= 1024;
case 'k':
$val *= 1024;
}
return $val;
}
输出
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608
array ini_get_all ([string $extension
[, bool$details
= true ]] ) 获取全部php设置信息
参数
$extension 属于哪个扩展
$details 是否详细信息默认true
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
print_r(ini_get_all("pcre", false)); // Added in PHP 5.3.0
print_r(ini_get_all(null, false)); // Added in PHP 5.3.0
输出
Array
(
[pcre.backtrack_limit] => Array
(
[global_value] => 100000
[local_value] => 100000
[access] => 7
)
[pcre.recursion_limit] => Array
(
[global_value] => 100000
[local_value] => 100000
[access] => 7
)
)
Array
(
[allow_call_time_pass_reference] => Array
(
[global_value] => 0
[local_value] => 0
[access] => 6
)
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 4
)
...
)
Array
(
[pcre.backtrack_limit] => 100000
[pcre.recursion_limit] => 100000
)
Array
(
[allow_call_time_pass_reference] => 0
[allow_url_fopen] => 1
...
)
void ini_restore (string $varname
)将配置恢复默认值
$setting = 'y2k_compliance';
echo 'Current value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'New value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
ini_restore($setting);
echo 'Original value for \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
以上例程会输出:
Current value for 'y2k_compliance': 1
New value for 'y2k_compliance': 0
Original value for 'y2k_compliance': 1
int memory_get_peak_usage ([ bool $real_usage
= false ] ) 获取当前内存使用的峰值
int memory_get_usage ([ bool $real_usage
= false ] ) 获取当前内存使用值
(其中 $real = true),结果将为调用时系统中实际分配的内存大小,包括内存管理器开销。如果不使用标记组,则返回的数据将只包括在运行脚本内使用的内存,减去内存管理器开销。
string php_ini_loaded_file ( void ) 获取已加载的PHP.INI的目录没有加载返回false
$inipath = php_ini_loaded_file();
if ($inipath) {
echo 'Loaded php.ini: ' . $inipath;
} else {
echo 'A php.ini file is not loaded';
}
输出
Loaded php.ini: /usr/local/php/php.ini
string php_ini_scanned_files ( void )返回配置文件目录下的配置文件列表
if ($filelist = php_ini_scanned_files()) {
if (strlen($filelist) > 0) {
$files = explode(',', $filelist);
foreach ($files as $file) {
echo "<li>" . trim($file) . "</li>\n";
}
}
}
string php_logo_guid ( void )获取PHP的logo
echo '<img src="' . $_SERVER['PHP_SELF'] .
'?=' . php_logo_guid() . '" alt="PHP Logo !" />';
string php_sapi_name ( void )
主要用途是判断提供PHP接口的WEB服务是什么类型 比如是 Apache,还是IIS 或者 Nginx...
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
echo "You are using CGI PHP\n";
} else {
echo "You are not using CGI PHP\n";
}
string php_uname ([ string
$mode
= "a" ] )
/**
* 返回PHP所运行的系统信息
* @param string $mode
* 'a': 返回所有信息
* 's': 操作系统的名称,如FreeBSD
* 'n': 主机的名称,如cnscn.org
* 'r': 版本名,如5.1.2-RELEASE
* 'v': 操作系统的版本号
* 'm': 核心类型,如i386
* @return string
*/
echo php_uname();
echo php_uname('s');
$flag
= CREDITS_ALL ] )php开发成员名单
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
bool phpinfo ([ int $what
= INFO_ALL ] ) PHP 配置信息
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. |
// Show all information, defaults to INFO_ALL
phpinfo();
// Show just the module information.
// phpinfo(8) yields identical results.
phpinfo(INFO_MODULES);
string phpversion ([ string
$extension
] ) PHP 版本信息 参数为扩展名,不填写为php版本,填写为扩展版本
// prints e.g. 'Current PHP version: 4.1.1'
echo 'Current PHP version: ' . phpversion();
// prints e.g. '2.0' or nothing if the extension isn't enabled
echo phpversion('tidy');
bool putenv ( string
$setting
) 设置系统环境变量
putenv("UNIQID=$uniqid");
getenv 取得系统的环境变量
语法:string getenv(string varname);-----------参数varname应该是$_SERVER(服务器超级全局变量数组)中预定的元素索引名、或者是用putenv("new=very new")定义一下new为环境变量,所以new作为参数将得值very new
返回值:字符串
函数种类:PHP 系统功能
内容说明:若正确取得环境变量 varname,则返回变量值。失败则返回 false。
使用范例
下例可以取得用户浏览器所在机器的网址
<?
$ip = getenv(“REMOTE_ADDR”);
?>
$_SERVER是服务器超级全局变量数组 用$_SERVER['REMOTE_ADDR']同样可以获取到客户端的IP地址。
二者的区别在于,getenv不支持IIS的isapi方式运行的php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
putenv 配置系统环境变量
PHP putenv()语法:void putenv(string setting);
返回值:无
函数种类:PHP 系统功能
内容说明:本函数用来配置系统环境变量。
使用范例:
配置 Oracle 数据库需使用的环境变量 NLS_LANG,返回资料含中文 BIG5 码。
<?
putenv("NLS_LANG=american_taiwan.zht16big5");
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
putenv()与getenv()综合示例
<?php
putenv("new=very new");
$is_new = getenv("new");
$new="bu shi";
echo $is_new,"<br />",$new;
?>
输出:
very new
所以从上可以知道不用怕在我们的代码里定义与putenv定义的环境变量同名,像此例中putenv("new=very new"); 与 $new="bu shi"; -----new一样了也不出错。