ini_set不能在同一个脚本中工作

时间:2012-11-27 12:59:28

标签: php prestashop

我正在使用prestashop,我需要更改max_input_vars,以便从翻译部分应用翻译更改。

由于我的托管服务提供商策略,我无法在.htaccess中使用php_value,所以我需要使用php.ini文件。 我已将其创建到prestashop管理文件夹中,其中包含以下内容:

max_input_vars = 3000

但是当我更新翻译时,我得到了max_input_vars的错误,所以它没有被php.ini更改。我也试过没有空白,尾随“;”并没有效果。

为了检查它,我创建了一个只有phpinfo()的文件,它告诉我它被设置为1000(默认值)。 我认为在phpinfo调用之上使用ini_set会改变它的值(仅适用于该脚本),但事实上,它并没有改变任何东西。 所以,我说:

ini_set("max_input_vars","3000");
phpinfo();

我获得的max_input_vars值是1000。

关于如何更改值或者为什么不能正常工作的想法?

2 个答案:

答案 0 :(得分:4)

此配置设置无法在运行时通过代码进行设置。如果您查看list of configuration settings,您会看到其“可更改”值为PHP_INI_PERDIRThis page解释了这意味着什么。

ini_set只会影响标记为PHP_INI_USER可更改的设置。

对此的逻辑解释是,在代码有机会运行之前,该设置会影响PHP的行为

答案 1 :(得分:1)

当PHP尝试解析发送到脚本的数据时,该设置适用。在脚本执行之前会发生这种情况。因此,您无法在运行时设置它,因为该设置会影响运行前的某些内容。