Прочитать комментарии строки в файле INI
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>
Есть другие идеи?
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
Я не поигрался с parse_ini_file, потому что мне не хочется перезагружаться на другую ОС с PHP 5.3, но я думаю, что сгенерировать остальную часть HTML должно быть легко.