日期:2014-05-17  浏览次数:20474 次

PHP开发笔记系列(五)- INI文件解释

??? 在JAVA开发中,我们经常会用到properties文件来保存整个工程需要用到的配置信息,例如数据库的连接串、用户名、密码、文件上传目录等等,那么PHP中这样的配置信息是怎样保存的呢?本文《PHP开发笔记系列(五)- INI文件解释》 将是《PHP开发笔记系列(XAMPP+PhpEclipse+XDebug)》 的第五篇,讲述如何解释INI配置文件。

??? 在PHP中,通常使用ini文件来保存配置信息,在一个.ini文件中建立变量,然后用parse_ini_file函数在代码中包含这个文件,该函数讷讷够解释与php.ini相同格式的文件。

??? 为了方便起见,直接从%XAMPP_HOME%/php目录下,copy一份php.ini文件到php工程下, 实验php脚本的解释.

?

????? INI文件是Initialization File的缩写,即初始化文件。是windows的系统配置文件所采用的存储格式。INI文件由节、键、值组成。 是[section],参数(键=值): name=value,注解使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。以下是Xdebug.ini文件样例:

?

[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir=D:\xampp\php\tmp\xdebug
xdebug.profiler_output_dir=D:\xampp\php\tmp\xdebug
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000 
xdebug.auto_trace = On
xdebug.show_exception_trace = On
xdebug.remote_autostart = On
xdebug.remote_enable = On
xdebug.collect_vars = On
xdebug.collect_return = On
xdebug.collect_params = On

?

? ??? parse_ini_file()函数可以设定是否解释section片段,下面将对上面的xdebug.ini文件进行解释,分别返回一维和二维数组:

?

file:ini1.php
url:http://localhost:88/ini/ini1.php
<?php
    $filename= 'xdebug.ini';
    
    // 指定ini文件路径,设定不解释section,结果为一维数组
    $vars = parse_ini_file($filename);
    
    echo '<h1>Ini File Content:</h1><br/>';
    echo '<pre>';
    print_r($vars);
    echo '</pre>';
    
    echo '<hr/>';
    
    echo '<pre>';
    // 通过数组索引(一维)访问配置信息
    echo 'xdebug.remote_host='.$vars['xdebug.remote_host'].'<br/>';
    echo 'xdebug.remote_port='.$vars['xdebug.remote_port'].'<br/>';
    echo '</pre>'; 
?>

?

?

file:ini2.php
url:http://localhost:88/ini/ini2.php
<?php
    $filename= 'xdebug.ini';
    
    // 指定ini文件路径,设定解释section,结果为二维数组
    $vars = parse_ini_file($filename, TRUE);
    
    echo '<h1>Ini File Content:</h1><br/>';
    echo '<pre>';
    print_r($vars);
    echo '</pre>';
    
    echo '<hr/>';
    
    echo '<pre>';
    // 通过数组索引(二维)访问配置信息
    echo 'xdebug.remote_host='.$vars['Xdebug']['xdebug.remote_host'].'<br/>';
    echo 'xdebug.remote_port='.$vars['Xdebug']['xdebug.remote_port'].'<br/>';
    echo '</pre>'; 
?>

?

??? 本文地址:http://ryan-d.iteye.com/blog/1543412