【问题标题】:How to the change php settings from php code?如何从 php 代码更改 php 设置?
【发布时间】:2011-02-18 13:20:08
【问题描述】:

我想更改 php 设置,但从“.php”页面而不是 php.ini。我要更改的设置是

upload_max_filesizepost_max_sizememory_limit

【问题讨论】:

    标签: php settings


    【解决方案1】:

    如果您有 AllowOverride 选项,您可以尝试使用 .htaccess 文件:

    将名为 .htaccess 的文件放置到您的 webroot:

    php_value upload_max_filesize 10000
    php_value post_max_size 10000
    php_value memory_limit 10000
    

    【讨论】:

    • 哈!忘记了这个可能性。在共享主机中并不总是可用,但值得一试。 +1
    • 你能告诉我把这个.htaccess放在哪里吗?我的意思是你的 webroot,但在 public_html\ 或 www\ 或在执行脚本的文件夹中混淆了 public_html\uploads\
    • 你可以把它放在webroot下面的任何文件夹中。把它放在你的 index.php 文件旁边,它应该可以工作。
    【解决方案2】:

    如果您的服务器管理员没有阻止,您可以使用ini_set() 更改内存限制:

    ini_set("memory_limit","16000000"); // abbreviations like "16M" work only 
                                        // in php.ini, always use full numbers here
    

    在加载 PHP 脚本之前需要另外两个选项,无法在 php.ini 中更改。

    【讨论】:

    • 那么我该如何更改它们,我的控制面板没有提供更改 php.ini 设置的选项,但我需要上传大于 100MB 的文件
    • @Starx 抱歉,如果您无权访问php.ini,可能无法执行此操作。您必须与您的提供商或服务器管理员交谈,并要求他们为您增加限制。
    【解决方案3】:

    使用

    ini_set ('key', 'value');
    

    请注意,并非所有可用选项都可以使用 ini_set() 进行更改。这是一个列表:ini.list

    ini_set 参考中了解更多信息;

    【讨论】:

      【解决方案4】:

      在 PHP 中唯一可以更改的是最后一个,可以使用ini_set 更改,如下所示:

      ini_set('memory_limit', '32M');
      

      PHP 总是在 PHP 脚本启动之前处理客户端请求。这意味着在脚本开始之前,上传的文件已经上传并且发布的表单已经完全发布。因此不能在脚本中设置上传和发布设置,因为它们在 PHP 脚本启动时已经无关紧要。

      【讨论】:

      • 而且文件上传也可能会受到网络服务器配置的限制。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 2019-08-17
      • 2012-11-01
      相关资源
      最近更新 更多