PHP选项及信息相关函数-2

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...
返回一个描述PHP与WEB服务器接口的小写字符串,在CGI方式下返回"cgi",在 mod_php 加载的Apache里面返回"apache"。
$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');


bool phpcredits ([ int $flag = CREDITS_ALL ] )php开发成员名单

phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);


bool phpinfo ([ int $what = INFO_ALL ] ) PHP 配置信息

INFO_GENERAL1The configuration line, php.ini location, build date, Web Server, System and more.
INFO_CREDITS2PHP Credits. See also phpcredits().
INFO_CONFIGURATION4Current Local and Master values for PHP directives. See also ini_get().
INFO_MODULES8Loaded modules and their respective settings. See also get_loaded_extensions().
INFO_ENVIRONMENT16Environment Variable information that's also available in $_ENV.
INFO_VARIABLES32Shows all predefined variables from EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE64PHP License information. See also the » license FAQ.
INFO_ALL-1Shows 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一样了也不出错。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值