我正在与用户ab
运行lighttpd我之前已经搜索过此问题,并且所有解决方案都说我必须将#
中/etc/php.ini
开头的所有行更改为{ {1}}但在我的;
文件中,没有以php.ini
开头的行,所有内容都已使用#
而不是;
。错误说:
#
Deprecated: Comments starting with '#' are deprecated in Unknown on line 11 in /www/log.php on line 224
Deprecated: Comments starting with '#' are deprecated in Unknown on line 11 in /www/log.php on line 175
的错误位于以下行:
log.php
我该如何解决这个问题?
更新
是的,我的文件包含$array = parse_ini_string(str_replace(' ', '=', file_get_contents('/home/ab/config')));
$profile = parse_ini_string(str_replace(' ', '=', file_get_contents('/home/ab/profiles/'.$array['profile'])));
,它们看起来像这样:
#
答案 0 :(得分:0)
您likely running PHP version 5.6或更早,因为parse_ini_string
函数中的PHP 7 interprets the #
comments as ini directives:
$ini = <<<'EOINI'
payload_inject '10'
#info 'abc def'
#info 'xyz 123'
EOINI;
$array = parse_ini_string(str_replace(' ', '=', $ini));
print_r($array);
输出
Array
(
[payload_inject] => 10
[#info] => xyz=123
)
因此,您应该使用#
替换行首的;
字符:
$ini = file_get_contents($filename);
$ini = preg_replace('/^\s*#/m', ';', $ini);
$array = parse_ini_string(str_replace(' ', '=', $ini));
其中m
是多行modifier。