ini_set()具有更改php.ini设置的功能。此函数接收两个参数:需要调整的配置变量名,以及变量的新值。

[c-sharp] view plaincopyprint?

  1. <?php

  2. ini_set('max_execution_time','10');

  3. ini_set('memory_limit','1024M');

  4. echo 'max_execution_time = ' . ini_get('max_execution_time') ;

  5. echo 'memory_limit = ' . ini_get('memory_limit') ;

  6. echo 'upload_max_filesize = ' . return_bytes(ini_get('upload_max_filesize'));

  7. echo 'post_max_size = ' . ini_get('post_max_size') . "/n";

  8. echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "/n";

  9. echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

  10. function return_bytes($val) {

  11. $val = trim($val);

  12. $last = strtolower($val{strlen($val)-1});

  13. switch($last) {

  14. // The 'G' modifier is available since PHP 5.1.0

  15. case 'g':

  16. $val *= 1024;

  17. case 'm':

  18. $val *= 1024;

  19. case 'k':

  20. $val *= 1024;

  21. }

  22. return $val;

  23. }

  24. ?>;

  25. //最后三行输出如下:

  26. post_max_size = 8M

  27. post_max_size+1 = 9

  28. post_max_size in bytes = 8388608

这样的设置将仅仅影响被设置的脚本。一旦脚本执行完毕,该变量将自动恢复到原始值。

注意:

1.php.ini文件中,并不是所有的设置项都是以integer型存储的,比如upload_max_filesize项就是以简写形式( shorthand notation)存储的,因此直接用ini_get()并不能获得正确的值,可以调用上例中return_bytes()函数进行转换。

2.并不是所有的available options都可以通过ini_set()函数来修改。具体哪些可以通过ini_set()函数来修改,参见http://www.phpeye.com/phpmanual/ini.list.html

如下图所示:

其中“可修改范围”的定义如下表:

因此,像post_max_size,upload_max_filesize用下面的方法是修改不了的。

  1. ini_set('post_max_size','1024M');

  2. ini_set('upload_max_filesize','1024M');

正确做法是用.htaccess文件:

  1. php_value upload_max_filesize 50M

  2. php_value post_max_size 100M

ini_set() php.ini设置的功能的更多相关文章

  1. MySql5.7配置文件my.ini 设置 my.ini文件路径

    mysql配置文件my-default.ini  my.ini修改后重启无效,原来是路径错了,记录一下: windows操作系统下: 1. 由于我们使用MySql 时,需要修改mysql 的 my.i ...

  2. Android 手机卫士--设置界面&功能列表界面跳转逻辑处理

    在<Android 手机卫士--md5加密过程>中已经实现了加密类,这里接着实现手机防盗功能 本文地址:http://www.cnblogs.com/wuyudong/p/5941959. ...

  3. 打开phpmyadmin显示高级功能尚未完全设置部分功能未激活

    问题:老师,打开phpmyadmin显示高级功能尚未完全设置部分功能未激活,应该如何解决? 这是前一阵子学生问过我的一个问题,今天我就在博客里解答你的疑问吧. 总共三步可以搞定 1.导入相关文件到数据 ...

  4. 采用ftpServer构建嵌入式ftp服务器时设置pass功能

    讲ftpserver嵌入式ftp服务器的文章很多,但是都没有介绍pass功能设置的. apach上pass部分也是针对的ftpd服务器的xml配置,关于嵌入式ftp服务器设置pass功能的部分几乎没有 ...

  5. MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码) - 转载

    MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码) MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以设置UTF-8为例来说明. 需 ...

  6. MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码)

    MySQL基础配置之mysql的默认字符编码的设置(my.ini设置字符编码) MySQL的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以设置UTF-8为例来说明. 需 ...

  7. phpMyAdmin 高级功能尚未完全设置,部分功能未激活(转载)

    phpMyAdmin 高级功能尚未完全设置,部分功能未激活.请点击这里查看原因. 第一步: 使用Mysql管理员帐号通过phpmyadmin登陆,然后点击“导入”,然后点击“浏览”按钮,找到phpmy ...

  8. TornadoFx设置保存功能((config和preference使用))

    原文地址:TornadoFx设置保存功能(config和preference使用) 相信大部分的桌面软件都是存在一个设置的界面,允许用户进行设置的修改,此修改之后需要保存的本地,若是让开发者自己实现, ...

  9. PHPStorm+XDebug进行调试图文教程以及解析wamp的php.ini设置不生效的原因

    这篇文章主要为大家详细介绍了PHPStorm+XDebug进行调试图文教程,内容很丰富,具有一定的参考价值,感兴趣的小伙伴们可以参考一下   笔者的开发环境如下:Windows8.1+Apache+P ...

随机推荐

  1. pythonGUI菜单栏和弹出菜单

    菜单栏代码: from tkinter import * root = Tk() menubar = Menu(root) def callback(): pass filemenu = Menu(m ...

  2. Inno Setup 注册表启动项 修改注册表

      //注册表启动项 [Registry] Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ...

  3. 狗日的Javascript中的闭包

    前面的话: 闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.下面是作者从作用域链慢慢讲到 ...

  4. eth0: ERROR while getting interface flags: No such device

    出现这个问题有两种原因: 虚拟机设置中没有添加对应的网卡 更改了虚拟机中网卡的MAC,但是Debian 的缓存中将eth0与上次的MAC对应 解决方法: 这里仅就第二种问题提出解决方案: 删除/etc ...

  5. 重新学习vue基础

    1.创建vue实例 var vm = new Vue({ el: '#example', //选择元素 data: {a:1} //基本数据 }) 2.模板语法 (一)基本语法 <span> ...

  6. Vue组件进阶知识总结

    上一篇我们重点介绍了组件的创建.注册和使用,熟练这几个步骤将有助于深入组件的开发.另外,在子组件中定义props,可以让父组件的数据传递下来,这就好比子组件告诉父组件:“嘿,老哥,我开通了一个驿站,你 ...

  7. ACboy needs your help-分组背包模板题

    id=17676" target="_blank" style="color:blue; text-decoration:none">ACboy ...

  8. Django——模板系统过滤器

    过滤器,变量的显示形式的改变 一.形式:小写 {{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 <p> 标签 {{ my_text|escape|line ...

  9. 访问vector元素方法的效率比较(转)

    LInux下: gcc 4.47,red hat6 #include<iostream> #include<vector> #include<time.h> usi ...

  10. mac os x 安装adb

    http://stackoverflow.com/questions/31374085/installing-adb-on-mac-os-x Option 1 - Using Homebrew Thi ...