是否可以使用 PHP 对 .ini 文件使用内联注释?

Posted

技术标签:

【中文标题】是否可以使用 PHP 对 .ini 文件使用内联注释?【英文标题】:Is it possible to use inline comments for .ini files with PHP? 【发布时间】:2010-11-27 17:29:55 【问题描述】:

使用 php 对 .ini 文件使用内联 cmets 是否可行且安全?

我更喜欢 cmets 与变量内联并紧随其后的系统。

关于要使用的语法有一些陷阱吗?

【问题讨论】:

您的问题不清楚。为了获得帮助,您的问题必须是可以理解的,没有人在您的脑海中。 【参考方案1】:

INI format 使用分号作为注释字符。它在文件中的任何位置接受它们。

key1=value
; this is a comment
key2=value ; this is a comment too

【讨论】:

除了作为起始字符之外,你有没有参考官方文档使用; 虽然这个问题是关于 PHP 的,但 Windows API 不支持 INI 文件的内联 cmets。我不确定 PHP for Windows 是否会使用 Windows API 来读取 INI 文件。无论如何,***都不是最好的来源。【参考方案2】:

如果你说的是内置的 INI 文件解析功能,分号是它所期望的注释字符,我相信它可以内联接受它们。

【讨论】:

= 符号右侧允许的语法限制是什么?它是否遵循通常的字符串引用和转义语法,例如匹配 ''、"" 和一些常见的正则表达式转义字符? 我不确定。为什么不试试看呢?【参考方案3】:
<?php
$ini = <<<INI
; this is comment
[section]
x = y
z = "1"
foo = "bar" ; comment here!
quux = xyzzy ; comment here also!
a = b # comment too
INI;

$inifile = tempnam(dirname(__FILE__), 'ini-temp__');
file_put_contents($inifile, $ini);
$a = parse_ini_file($inifile, true);
if ($a !== false)

  print_r($a);

else

  echo "Couldn't read '$inifile'";


unlink($inifile);

输出:

Array
(
    [section] => Array
        (
            [x] => y
            [z] => 1
            [foo] => bar
            [quux] => xyzzy
            [a] => b # comment too
        )

)

【讨论】:

我认为您不需要写入临时文件; parse_ini_string() 会成功的 php.net/manual/en/function.parse-ini-string.php parse_ini_string (PHP 5 >= 5.3.0)

以上是关于是否可以使用 PHP 对 .ini 文件使用内联注释?的主要内容,如果未能解决你的问题,请参考以下文章

php ini 使用 parse_ini_file 创建数组

是否有任何函数可以设置 extension=php_mssql.dll 而无需在 php.ini 中使用我们使用 ini_set() 之类的函数进行编辑;方法

phpstrom进行断点调试的配置

composer安装

PHP.9-HTML+CSS-CSS样式

关于php的ini文件相关操作函数浅析