[藍(lán)]php的幾個(gè)配置文件函數(shù)

2010-08-28 10:47:16來源:西部e網(wǎng)作者:

     以前一直沒注意,今天聽同事講起,馬上看看,功能強(qiáng)大。
     php的配置函數(shù)就是幾個(gè)ini_*的函數(shù),主要是針對(duì)配置文件的操作,其實(shí)就四個(gè)函數(shù):ini_get、ini_set、ini_get_all、ini_restore。個(gè)人感覺最有用的就是ini_set和ini_get。
* ini_get():獲取配置文件的選項(xiàng)值

    這個(gè)函數(shù)相信很多人都使過,就是獲取配置文件中某一個(gè)選項(xiàng)的值,如果是true值就返回1,如果是false值就返回0,字符串就返回字符串。
    比如手冊(cè)中的例子:
<?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"; //顯示錯(cuò)誤是否打開
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";
?>

輸出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
 
    這個(gè)函數(shù)主要是為了獲取配置文件,可以方便你很多操作。比如你想操作字符串過濾,但是又不清楚magic_quotes_gpc有沒有打開,所以你就可以這樣寫一個(gè)函數(shù):

/* 字符串過濾函數(shù) */
function stringFilter($str)
{
 if (ini_get('magic_quotes_gpc)') {
  return $str;
 } else {
  return addslashes($str);
 }
}
    當(dāng)然,如果你無法知道你的全局變量是否打開,也可以定制這樣的函數(shù):

/* 變量檢測(cè)函數(shù) */
function getGetVar($var)
{
 if (ini_set('register_gobals')) {
  return $var;
 } else {
  return $_GET['var'];
 }
}
    當(dāng)然,你可以做很多用途,自己慢慢體會(huì)。


* ini_set函數(shù):設(shè)置php.ini中的某些變量值

    這個(gè)函數(shù)是設(shè)置選項(xiàng)中的值,在執(zhí)行函數(shù)后生效,腳本結(jié)束的時(shí)候,這個(gè)設(shè)置也失效。不是所有的選項(xiàng)都能被改函數(shù)設(shè)置的。具體那些值能夠設(shè)置,可以查看手冊(cè)中的列表。
就是能夠設(shè)置php.ini中的選項(xiàng)值比如,display_error選項(xiàng)關(guān)閉了,但是你要顯示程序中的錯(cuò)誤信息,方便你調(diào)試程序,那么就可以使用這個(gè)函數(shù):

ini_set("display_errors", "On");

    那么在你這個(gè)頁面的程序都會(huì)顯示錯(cuò)誤信息了,而且你還可以使用error_reporting來設(shè)置顯示的錯(cuò)誤信息級(jí)別。
    如果你需要增加腳本執(zhí)行時(shí)間,那么可以設(shè)置:

ini_set("max_execution_time", "180");

    那么腳本執(zhí)行時(shí)間就由默認(rèn)的30秒變?yōu)?80秒,當(dāng)然,你也可以使用set_time_limit()來設(shè)置。
其實(shí)你把ini_set和ini_get結(jié)合使的話,非常好。比如你想在配置文件里添加自己的包含文件路徑,但是你有沒有權(quán)限更改php.ini,那么你可以結(jié)合兩個(gè)函數(shù):

ini_set('include_path',ini_get('include_path').':/your_include_dir:');


*  ini_get_all: 獲取所有的設(shè)置選項(xiàng)變量

    把所有選項(xiàng)值以數(shù)組的形式返回,方便你當(dāng)phpinfo()無法使用的時(shí)候來使用。

手冊(cè)例子,比如:

<?php
$inis = ini_get_all();

print_r($inis);

?> 

部分輸出:

Array
(
    [allow_call_time_pass_reference] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 6
    )
    [allow_url_fopen] => Array
    (
        [global_value] => 1
        [local_value] => 1
        [access] => 7
    )
    ...
)

* ini_restore: 回復(fù)配置文件默認(rèn)的值

就是回復(fù)配置文件默認(rèn)的值,當(dāng)你使用ini_set設(shè)置后可以使用它來恢復(fù)。

關(guān)鍵詞:php

贊助商鏈接: