问题在于:
ini_set('display_errors', '1'); ini_set('safe_mode', '0'); ini_set('allow_url_fopen', '1'); ini_set('allow_url_include', '1'); print_r(ini_get_all());
我得到了:
Array( [allow_url_fopen] => Array ( [global_value] => 1 [local_value] => 1 [access] => 4 ) [allow_url_include] => Array ( [global_value] => [local_value] => [access] => 4 )
为什么我不能在php ini_set函数中设置该变量?该指令被指定为PHP_INI_ALL,然后它可以在ini_set()函数中定义! http://php.net/manual/en/ini.list.php
答案 0 :(得分:14)
<强> display_errors
强>
可以在运行时设置(使用ini_set()
),但如果脚本有致命错误则不会产生任何影响。这是因为没有执行所需的运行时操作。
使用ini_set('display_errors','Off');
<强> safe_mode
强>
自PHP 5.3.0开始,此功能已被弃用,自PHP 5.4.0起已被删除。该指令属于PHP_INI_SYSTEM
,无法通过ini_set()
<强> allow_url_include
强>
使用ini_set('allow_url_include', 'On');
<强> allow_url_fopen
强>
此指令属于PHP_INI_SYSTEM
,无法通过ini_set()
答案 1 :(得分:6)
无法在用户脚本中更改这些变量。 access
值表示:
PHP_INI_SYSTEM 4 Entry can be set in php.ini or httpd.conf
您可以尝试在.htaccess
中设置它:
php_value allow_url_include 1
答案 2 :(得分:0)
您是否尝试过布尔值而不是0或1?
ini_set('display_errors', true);
ini_set('safe_mode', false);
ini_set('allow_url_fopen', true);
ini_set('allow_url_include', true);
print_r(ini_get_all());
或试试这个:
ini_set('allow_url_include', 'on');
答案 3 :(得分:0)
答案 4 :(得分:0)
我的回答可能不合时宜,但是当我的ini_set
通话不起作用时,我几乎总是通过Google再次回到这个问题。分享我的案例可能有助于其他人更快地解决ini_set
的问题。
因此,在我的情况下,display_errors
被禁用,但是PHP仍然在浏览器中显示了错误,尽管我启用了log_errors
并将error_log
设置为C:\Windows\Temp\PHP_error.log
。
第一印象总是 ini_set不起作用,但是这可能是权限问题。如果PHP无法访问日志文件,则它将简单地将错误发送到浏览器。
解决方案::确保PHP具有访问和写入日志文件的权限。
答案 5 :(得分:-1)
如果您在zabbix界面"ini_set(): Use of mbstring.internal_encoding is deprecated"
只需转到文件vi /usr/local/share/zabbix/include/locales.inc.php并告知该行
# ini_set('mbstring.internal_encoding', 'UTF-8');"
重新启动httpd
&amp; zabbix-server
守护进程,然后尝试..就是这样。!