Pol*_*ino 9 php administration
如何检查服务器配置是否允许我设置如下选项:
ini_set('upload_max_filesize', '8M');
Run Code Online (Sandbox Code Playgroud)
在PHP脚本中?这是一个php.ini指令的列表,但我无法弄清楚如何在更改该值之前进行检查.
Fil*_*efp 11
ini_set一些option,怎么样?ini_set将在成功时返回旧值,并false在失败时返回*.有了这些知识,你可以写一个声明,检查你的电话是否通过,如下所示.
$result = ini_set ("some_option", "some_value");
$failure = (version_compare(PHP_VERSION, '5.3.0') >= 0) ? false : '';
if ($result === $failure)
echo "Unable to use ini_set to change 'some_option'!";
Run Code Online (Sandbox Code Playgroud)
(*):注意PHP 5.3.0中的返回值从''(空字符串)更改为false.所以你需要检查你当前的PHP版本.
另一种方法是使用ini_get_all它,它将为您提供有关每个可用选项的详细信息,以及它的访问级别.
$all_option_details = ini_get_all ();
/* see the comments in this post regarding PHP_INI_USER vs INI_USER
* seems like someone writing the relevant PHP documentation fcuked up
*
* props to @soulmerge */
if ($all_option_details['upload_max_filesize']['access'] & INI_USER)
echo "we are allowed to change upload_max_filesize from with ini_set!";
Run Code Online (Sandbox Code Playgroud)
ini_set某些选项,如何使用?有几种方法可以使选项不可更改的运行时(以某种方式禁用ini_set),其中有以下两种,您可以在提供的链接中阅读更多信息.
php_admin_value 名称值
设置指定指令的值.这不能用于.htaccess文件.使用php_admin_value设置的任何指令类型都不能被 .htaccess或ini_set()覆盖.要清除先前设置的值,请使用none作为值.
php_admin_flag 名称开|关
用于设置布尔配置指令.这不能用于.htaccess文件.使用php_admin_flag设置的任何指令类型都不能被 .htaccess或ini_set()覆盖.
示例(取自本文档)
<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
php_value include_path ".:/usr/local/lib/php"
php_admin_flag engine on
</IfModule>
Run Code Online (Sandbox Code Playgroud)