是否可以使用 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() 之类的函数进行编辑;方法