可以在php.ini文件中查看指令集,或者也可以在一个脚本的运行周期中修改它们。这个特性是非常有用的。例如,如果我们知道脚本需要运行一段时间,可以通过设置max_execution_time指令来限制脚本的最长运行时间。
使用ini_get函数和ini_set函数,可以访问和修改指令。程序清单24-2显示了使用这些函数的简单脚本。
程序清单24-2 iniset.php——重置php.ini文件中的变量的脚本
<?php
$old_max_execution_time=ini_set('max_execution_time',120);
echo"old timeout is$old_max_execution_time<br/>";
$max_execution_time=ini_get('max_execution_time');
echo"new timeout is$max_execution_time<br/>";
?>
ini_set函数需要两个参数。第一个参数是文件php.ini中的配置指令的名称,它是要修改的对象,第二个参数是修改后的值。该函数将返回配置指令的前一个值。
在这个例子中,我们将脚本最长运行时间的默认值30s(或任何在php.ini文件的设置值)修改为最大值120s。
ini_get函数只检查特定配置指令的值。指令名称需要通过字符串形式传给该函数。在这个例子中,我们只是用它来检查指令值是否已经改变。
并不是所有的INI选项都是可以通过这种方式进行设置的。每一个选项都有允许设置的级别。可能的级别包括:
■PHP_INI_USER——可以通过ini_set函数在脚本中改变这些值。
■PHP_INI_PERDIR——如果使用Apache,可以改变php.ini、.htaccess或httpd.conf文件的设置值。能够在.htaccess中修改这些设置值意味着可以在目录级别修改这些值。
■PHP_INI_SYSTEM——可以修改php.ini或httpd.conf文件中的设置值。
■PHP_INI_ALL——可以使用以上任意一种方法修改这些值——也就是,在一个脚本中,在.htaccess文件,或者httpd.conf、php.ini文件中。
ini选项的完整集合和可以设置的级别可以在PHP手册中找到:http://www.php.net/ini_set。