0

このparse_ini_file関数は、構成ファイルを読み取るときにコメントを削除します。

次の行に関連付けられているコメントを保持するにはどうしますか?

例えば:

[email]
; Verify that the email's domain has a mail exchange (MX) record.
validate_domain = true

X(HT)ML と XSLT を使用してコンテンツを INI ファイルに変換することを考えています (ドキュメントとオプションを単一ソースにすることができます)。例えば:

<h1>email</h1>
<p>Verify that the email's domain has a mail exchange (MX) record.</p>
<dl>
<dt>validate_domain</dt>
<dd>true</dd>
</dl>

他のアイデアはありますか?

4

1 に答える 1

1

preg_match_all を使用して、[heading]マークアップの後にコメントを抽出できます。

$txt = file_get_contents("foo.ini");
preg_match_all('/\[([^\]]*)\][[:space:]]*;(.*)/',
    $txt, $matches, PREG_SET_ORDER);

$html = '';

foreach ($matches as $val) {
    $key = trim($val[1]); /* trimming to handle edge case
                             "[ email ]" so $key can be looked up
                              in the parsed .ini */
    $comment = $val[2];

    $html .= "<h1>$key</h1>\n";
    $html .= "<p>$comment</p>\n";
}

echo $html;

foo.ini には以下を含めることができます。

[email]
; Verify that the email's domain has a mail exchange (MX) record.
validate_domain = true ; comment ignored

[s2] ; comment can go here too
foo_bar = true

[s3]
foo_bar = true ; comment also ignored

PHP 5.3 で別の OS を再起動する気がしないので、parse_ini_file をいじりませんでしたが、残りの HTML を生成するのは簡単だと思います。

于 2010-04-17T02:41:50.887 に答える