我想设置我自己的(php2.ini)文件,只需几行就必须覆盖第一个php.ini设置 - 仅适用于那些行。
所以我开始关注谷歌,看起来我需要的是parse_ini_file
功能。
确定。现在,在index.php中我有:
parse_ini_file("php2.ini");
phpinfo();
exit();
但是没有加载来自php2.ini的那些设置......
尝试查看文件php2.ini是否为read-it而它是,因为如果我设置parse_ini_file("php2-not-exist.ini")
,它会告诉我无法找到该文件。因此读取文件php2.ini,但不会覆盖设置。
php2.ini文件位于下一行:
error_log = "errors.log"
display_errors = "0"
max_execution_time = "300"
upload_max_filesize = "60M"
post_max_size = "60M"
date.timezone = "Europe/Bucharest"
default_charset = "UTF-8"
mbstring.internal_encoding = "UTF-8"
mbstring.http_output = "UTF-8"
mbstring.encoding_translation = "On"
mbstring.func_overload = "6"
尝试让这个文件只有post_max_size = "60M"
这样的一行,但仍然没有覆盖一般的php.ini设置。
我在这里缺少什么?
我知道某些设置只能设置,只能使用php.ini文件配置。因此,使用parse_ini_file设置第二个文件是一个来自php的函数......有些东西不正确,因为有些服务器不允许你编辑一般的php.ini文件。那么如果你没有访问普通的文件,怎么能让php设置第二个php ini文件呢?我不知道这是否与我的问题有关。我只是说这可能是问题所在。
现在我正在使用php 5.5.12的wamp。我只想在上传网站时完成所有工作。我知道一些托管服务器允许你有第二个php.ini文件,必须上传到public_html或任何文件夹。这就是我想设置我的php2.ini文件的原因。我上传到托管时要让网站干净。
谢谢。
答案 0 :(得分:0)
php parse_ini_file()函数将ini文件读入关联数组。它不会像php.ini文件那样设置它们。
没有便利功能来覆盖这样的服务器设置。你可能想要的是.user.ini
(领先的点很重要)文件:
自PHP 5.3.0起,PHP包括对每个目录的配置INI文件的支持。
和
除了主要的php.ini文件之外,PHP还扫描每个目录中的INI文件,从所请求的PHP文件的目录开始,然后直到当前文档根目录(在$ _SERVER ['中设置] DOCUMENT_ROOT'])。如果PHP文件位于文档根目录之外,则只扫描其目录。
有关该功能的完整文档,请查看http://php.net/manual/en/configuration.file.per-user.php。
请注意,此处只能更改一部分设置:
只有具有PHP_INI_PERDIR和PHP_INI_USER模式的INI设置才能在.user.ini样式的INI文件中识别。