我正在使用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。
关于如何更改值或者为什么不能正常工作的想法?
答案 0 :(得分:4)
此配置设置无法在运行时通过代码进行设置。如果您查看list of configuration settings,您会看到其“可更改”值为PHP_INI_PERDIR
。 This page解释了这意味着什么。
ini_set
只会影响标记为PHP_INI_USER
可更改的设置。
对此的逻辑解释是,在代码有机会运行之前,该设置会影响PHP的行为。
答案 1 :(得分:1)
当PHP尝试解析发送到脚本的数据时,该设置适用。在脚本执行之前会发生这种情况。因此,您无法在运行时设置它,因为该设置会影响运行前的某些内容。