You could try parse_ini_file()
, the format looks compatible. It won't process the comments, though.
soulmerge
2010-01-06 09:42:39
You could try parse_ini_file()
, the format looks compatible. It won't process the comments, though.
This will get you the key/value pairs, but not the comments:
$options = array();
foreach ($line as $l)
{
$l = trim($l);
if (strlen($l) && substr($l, 0, 1) != '#')
{
list($key, $value) = explode("=", $l);
// remove whitespace from the end of the config key
$key = rtrim($key);
$options[$key] = $value;
}
}
here's one way
$content = file_get_contents("file");
$s = preg_split("/#--*/",$content);
$y = preg_split("/\n\n/",end($s));
for($i=0;$i<count($y)-1;$i++){
if ($y[$i]){
if (strpos($y[$i],"#")!==FALSE){
$comment="$y[$i]\n";
$conf=$y[$i+1];
$cs = array_map(trim,explode("=",$conf));
$A["comment"]=$comment;
$A["key"]=$cs[0];
$A["value"]=$cs[1];
$TA[]=$A;
}
}
}
print_r($TA);
output
Array
(
[0] => Array
(
[comment] => # This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See
# http://www.gnu.org/software/libiconv for the list of possible encodings.
[key] => DOXYFILE_ENCODING
[value] => UTF-8
)
[1] => Array
(
[comment] => # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
[key] => PROJECT_NAME
[value] => JMK
)
[2] => Array
(
[comment] => # The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
[key] => PROJECT_NUMBER
[value] => 10
)
)