hallo,
ich hab ein kleines skript, das mir eine ini_file komplett ausließt. wollt ich nach meinen bedürfnissen umschreiben, nämlich so, das es mir nur einen bestimmten teil des files, der durch bestimmte comments abgetrennt ist, ausließt
sprich, die file wird von beginn an ausgelesen bis eben zu dem comment "#repos#"
hab ich n denkfehler drin?
hier der code
ich hab ein kleines skript, das mir eine ini_file komplett ausließt. wollt ich nach meinen bedürfnissen umschreiben, nämlich so, das es mir nur einen bestimmten teil des files, der durch bestimmte comments abgetrennt ist, ausließt
sprich, die file wird von beginn an ausgelesen bis eben zu dem comment "#repos#"
hab ich n denkfehler drin?
hier der code
PHP-Code:
function readINIfile ($filename, $commentchar) {
$array1 = file($filename);
$section = '';
for ($line_num = 0; $line_num <= sizeof($array1); $line_num++)
{
$filedata = $array1[$line_num];
$dataline = trim($filedata);
$firstchar = substr($dataline, 0, 1);
do // dieser teil wird abgearbeitet....
{
if ($firstchar!=$commentchar && $dataline!='')
{
//Zeile vorhanden, steht was drin (kein comment, leere zeile)
if ($firstchar == '[' && substr($dataline, -1, 1) == ']')
{
//It's a section
$section = substr($dataline, 1, -1); //
}
else // wenn es keine section ist (section= zb: [groups])
{
//It's a key...
$delimiter = strpos($dataline, '=');
if ($delimiter > 0)
{
//...with a value
$key = trim(substr($dataline, 0, $delimiter));
$array2[$section][$key] = '';
$value = trim(substr($dataline, $delimiter + 1));
while (substr($value, -1, 1) == "")
{
$value = substr($value, 0, strlen($value)-1);
$array2[$section][$key] .= stripcslashes($value);
$line_num++;
$value = trim($array1[$line_num]);
}
$array2[$section][$key] .= stripcslashes($value);
$array2[$section][$key] = trim($array2[$section][$key]);
if (substr($array2[$section][$key], 0, 1) == '"' && substr($array2[$section][$key], -1, 1) == '"')
{
$array2[$section][$key] = substr($array2[$section][$key], 1, -1);
}
}
else // strpos-delimiter gibt FALSE zurück, = nicht gefunden, sprich line hat keine zuweisung
{
//...ohne value
$array2[$section][trim($dataline)]='';
}
}
}
else
{
//BLANK
}
}
while($dataline != '#repos#'); // ........solange nicht #repos# in einer zeile steht
}
return $array2;
}
function readOutArr($arr) { //function zum ausgeben des arrays
if(is_array($arr)) {
foreach($arr as $key => $val) {
if(is_array($val)) {
echo "<b>Key:</b> ".$key . "<br>####################################<br>";
foreach($val as $id => $tag) {
echo "ID: ".$id . "<br>";
if(is_array($id)) {
//Ebene tiefer
}
else {
echo "Tag: ".$tag . "<br><br>";
}
}
}
else {
echo $key . " => ";
}
}
}else {
return false;
}
}
Kommentar