PHP最常用的ini函数分析 针对PHP.ini配置文件

* ini_get():获取配置文件的选项值

这个函数相信很多人都使过,就是获取配置文件中某一个选项的值,如果是true值就返回1,如果是false值就返回0,字符串就返回字符串。

比如手册中的例子:




<?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";
?>

输出:




display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9

这个函数主要是为了获取配置文件,可以方便你很多操作。比如你想操作字符串过滤,但是又不清楚magic_quotes_gpc有没有打开,所以你就可以这样写一个函数:




/* 字符串过滤函数 */
function stringFilter($str)
{
if (ini_get('magic_quotes_gpc)') {
return $str;
} else {
return addslashes($str);
}
}

当然,如果你无法知道你的全局变量是否打开,也可以定制这样的函数:




/* 变量检测函数 */
function getGetVar($var)
{
if (ini_set('register_gobals')) {
return $var;
} else {
return $_GET['var'];
}
}

当然,你可以做很多用途,自己慢慢体会。

* ini_set函数:设置php.ini中的某些变量值

这个函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表。

就是能够设置php.ini中的选项值比如,display_error选项关闭了,但是你要显示程序中的错误信息,方便你调试程序,那么就可以使用这个函数:




ini_set("display_errors", "On");

那么在你这个页面的程序都会显示错误信息了,而且你还可以使用error_reporting来设置显示的错误信息级别。

如果你需要增加脚本执行时间,那么可以设置:




ini_set("max_execution_time", "180");

那么脚本执行时间就由默认的30秒变为180秒,当然,你也可以使用set_time_limit()来设置。

其实你把ini_set和ini_get结合使的话,非常好。比如你想在配置文件里添加自己的包含文件路径,但是你有没有权限更改php.ini,那么你可以结合两个函数:




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

* ini_get_all: 获取所有的设置选项变量

把所有选项值以数组的形式返回,方便你当phpinfo()无法使用的时候来使用。

手册例子,比如:




<?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: 回复配置文件默认的值

就是回复配置文件默认的值,当你使用ini_set设置后可以使用它来恢复。

(0)

相关推荐

  • php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)

    php.ini-recommended的安全等级比php.ini-dist高.默认是把display_errors 设置为 off,将magic_quotes_gpc 设置为Off等等.而相对的php.ini-dist都是默认的配置. 所以说,如果你只是想进行web测试和普通开发,使用php.ini-dist,不然就是用php.ini-recommended. 具体参阅http://www.php.net 简单说明: 如果是本地开发学习,建议复制 php.ini-dist一份保存为php.ini

  • IIS+PHP+MySQL环境中PHP.INI需要注意的几个地方

    output_buffering = On 如果使用默认的 4096,那么 PHP 在 IIS6 里面性能将非常糟糕 register_globals = Off extension_dir = "c:\PHP\ext" upload_max_filesize = 100M extension=php_mbstring.dll extension=php_mysql.dll mysql.default_port = 3306(重点,之前我就忘了加,一直出现服务器500错误.) mysq

  • php.ini修改php上传文件大小限制的方法详解

    打开php.ini,首先找到file_uploads = on ;是否允许通过HTTP上传文件的开关.默认为ON即是开upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹upload_max_filesize = 8m ;望文生意,即允许上传文件大小的最大值.默认为2Mpost_max_size = 8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值.默认为8M一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,

  • 修改php.ini实现Mysql导入数据库文件最大限制的修改方法

    自己电脑上装的WAMP,在导入数据库比较大(大于2M)时遇到错误,不能导入. 找到解决方法: php.ini配置文件中有三处地方需要改动: upload_max_filesize memory_limit post_max_size 这三个值都根据实际情况改下,重启服务器以后,虽然导入时仍然显示是 最大限制:2,048 KB) : 但实际上已经可以导入很大的数据库了...

  • libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢

    是否一定要这样做呢?很多网上的帖子都是人云亦云,别人说要,他也说要. 其实用的,每次重装系统,都这样拷一遍,折腾一遍,太辛苦了. 用过APMServ这个傻瓜式安装包的朋友可能会发觉,这个东西,在第一次安装后,以后重装系统也不会重新安装的,只要运行一下主程序,就可以运行WAMP的了,不用折腾一遍的. 可能有人会认为它把libmysql.dll拷贝到c:\windows目录下了,其实不是的,不信去找一找. 既然APMServ可以做到,那么我们也可以做得,比对了APMServ和我们安装的WAMP,找到

  • php.ini中date.timezone设置分析

    虽然知道这个参数表示"中华人民共和国"的意思,但官方文档 中并没有这样的参数,只有Asia/Shanghai.Asia/Hong_Kong等这些参数啊,为何这里可以设置为RPC,哪位给指点指点,这个参数 究竟是在哪儿?官方文档中看来看去的确并没有此参数啊,不解. 一般都设成Asia/Shanghai 使用xampp时间不久,今天为了纠正php获取函数是获取服务器时间. 因为php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的.显示的时间都是

  • php-5.2下php.ini 中文版配置说明第1/3页

    ;;;;;;;;;;;; ;; 语法 ;; ; 该文件的语法非常简单.空白字符和以分号开始的行被简单地忽略. ; 章节标题(例如: [php])也被简单地忽略,即使将来它们可能有某种意义. ; 设置指令的格式如下: ; directive = value ; 指令名(directive)是大小写敏感的!所以"foo=bar"不同于"FOO=bar". ; 值(value)可以是: ; 1. 用引号界定的字符串(如:"foo") ; 2. 一个数字

  • 适用于php-5.2 的 php.ini 中文版[金步国翻译]

    由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别.如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品质量的建议我都将虚心接纳.如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系.联系方式:MSN: csfrank122@hotmail.com 复制代码 代码如下: ;; 关于php.ini ;; ; 这个文件必须命名为'php.ini'并放置在httpd.conf中PHPINIDir指令指定的目录中. ; 最新版本的php.ini可以在下

  • php.ini中的php-5.2.0配置指令详解

    ;; 关于php.ini ;;  这个文件必须命名为'php.ini'并放置在httpd.conf中的PHPIniDir指令指定的目录中. ; 最新版本的php.ini可以在下面两个位置查看: ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co ;;;;;;;;;;;; ;; 语法 ;; ;;

  • php.ini 配置文件的深入解析

    [PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化, ; 在使用新的PHP版本前,研究一下php.ini会有好处的 ;;;;;;;;;;;;;;;;;;; ; 关于这个文件 ; ;;;;;;;;;;;;;;;;;;; ; 这个文件控制了PHP许多方面的观点.为了让PHP读取这个文件,它必须被命名为 ; 'php.ini'.PHP 将在这些地方依次查找该文件:当前工作目录:环境变量PHPRC ; 指明的路径:编译时指定的路径. ;

  • Apache中php.ini的设置方法

    例如: 复制代码 代码如下: 1 LoadModule php5_module "D:/wamp/bin/php/php5.4.3/php5apache2_2.dll"2 PHPIniDir "D:\wamp\bin\php\php5.4.3" 这样Apache使用的php.ini和PHP的DLL都是加载的5.4.3版本的.让IIS使用环境变量中的php.ini. 另外在wamp启动的时候,经常会提示类似 "无法定位程序输入点 php_checkuid 于

  • php.ini 启用disable_functions提高安全

    Q. I run a small Apache based webserver for my personal use and it is shared with friends and family. However, most script kiddie try to exploit php application such as wordpress using exec() , passthru() , shell_exec() , system() etc functions. How

  • php.ini 配置心得(上传等限制)

    配置php.ini(php.ini为 c:\windows下的 php.ini)不是PHP目录下的 php.ini 修改了一些文件上传以及内存使用最大限制: memory_limit = 20M post_max_size = 20M upload_max_filesize = 20M 备注:post_max_size和upload_max_filesize一起配置才能设置成功上传文件的大小. session.save_path = c:/temp 在session.save_path中使用正斜

  • 修改php.ini不生效问题解决方法(上传大于8M的文件)

    摘要:上传大于8M的文件需要修改php的配置才可以生效.但是我在网上找了一堆修改配置的资料,但是自己修改之后就是没有生效. 解决方法: 修改php.ini这个选项,网上有很多的教程,可以随便搜. 1.先用root账号,登录到nobody的账户. 2.然后用whereis php命令查看,php.ini所在的位置,修改这个php.ini的文件就可以了. 3.最后重启apache,就可以生效了. 这里的nobody账户就是apache使用的账户,权限很低. 这里主要注意的问题就是你修改的配置文件必须

  • php.ini文件配置好后,zend路径也全部配置正确,但是phpinfo()还显示没有zend信息

    php.ini文件配置好后,zend路径也全部配置正确,但是phpinfo()还显示没有zend信息 查看zend的目录是否有user权限.默认即可. isapi模式安装php,无法访问网站常见问题. 需要在php5isapi.dll上面添加user权限. phpinfo没法运行 先看php配置的是否正确,不正确再看配置的是什么模式,cgi 或者isapi或者fastcgi模式,然后在查看配置文件. php未找到该页 首先查看.php的扩展文件是否配置正确,然后在查看页面路径是否正确. 配置ph

  • 修改php.ini以达到屏蔽错误信息并记录日志

    那是因为php.ini中关闭了错误显示,将错误写成了文件,这是人为设置的结果,display_errors =on就好了. 不过不显示错误倒安全点,建议调试时打开,然后提供服务时关闭. 提供一点资料给你: display_errors = On php缺省是打开错误信息显示的,我们把它改为: display_errors = Off 关闭错误显示后,php函数执行错误的信息将不会再显示给用户,这样能在一定程度上防止攻击者从错误信息得知脚本的物理位置,以及一些其它有用的信息,起码给攻击者的黑箱检测

  • 基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解

    AppServ,XAMPP,WAMP都是集成了apache,mysql,php的套装,使用起来比较方便,就不需要再去一个个的配置php,apache和mysql. 下载相应的安装包进行安装,不过对于php项目来说,WAMP会默认显示NOTICE信息,页面上一大段一大段的,比较难看.怎么去掉这些警告信息呢?先找到php.ini文件. 其路径是:(我的安装路径是D:\wamp)D:\wamp\bin\php\php5.3.10\php.ini ,打开该文件. 在文件中搜索,error_reporti

  • phpadmin如何导入导出大数据文件及php.ini参数修改

    最近遇到了数据库过大的时候用phpadmin导入的问题,新版本的phpadmin导入限定是8M,老版本的可能2M,我的数据库有几十兆这可怎么办呢? 首先如果你有独立服务器或vps的话可以找到 Apache 下的php.ini 这个文件来修改这个8M或2M的限制,怎么修改呢? 搜索到,修改这三个 复制代码 代码如下: upload_max_filesize = 2M post_max_size = 8M memory_limit = 128M 修改完毕 重启下服务,进phpadmin看看吧,应该可

随机推荐