parse_ini umschreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • parse_ini umschreiben

    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

    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($dataline01);

       do 
    // dieser teil wird abgearbeitet....
        
    {
           if (
    $firstchar!=$commentchar && $dataline!='')
           {
             
    //Zeile vorhanden, steht was drin (kein comment, leere zeile)
             
    if ($firstchar == '[' && substr($dataline, -11) == ']')
             {
               
    //It's a section
               
    $section substr($dataline1, -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($dataline0$delimiter));
                 
    $array2[$section][$key] = '';
                 
    $value trim(substr($dataline$delimiter 1));

                 while (
    substr($value, -11) == "")
                     {
                         
    $value substr($value0strlen($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], 01) == '"' && substr($array2[$section][$key], -11) == '"')
                 {
                    
    $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;
        }




  • #2
    www.das-dass.de

    und jetzt erkläre dein problem.

    Kommentar


    • #3
      hab ich mich so unklar ausgedrückt? wenn ja, versuch ichs gern nochmal !

      Kommentar


      • #4
        Und wieso so kompliziert ? Lies doch die Datei mittels file() ein und ermittle in welchem Array Element der gesuchte Kommentar steht. Dann einfach ein array_slice() bis zum Element.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          hab ich mich so unklar ausgedrückt? wenn ja, versuch ichs gern nochmal !
          Dann tu's auch. Penizillin hätte sonst wohl nicht danach gefragt!

          Kommentar

          Lädt...
          X