aufruf von funktion funktioniert nicht

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

  • aufruf von funktion funktioniert nicht

    hi,
    für das lesen einer datei muss ich immer mal wieder eine zeile übersprigen, ich will jedoch nicht immer
    fgets($handle, 4096);
    aufrufen. deshalb habe ich mir eine funktione gebaut

    PHP-Code:
    function skipLine(){
        
    $handle fopen ('test.xml' "r");
        
    $buffer fgets($handle4096);
        
    }{ 
    doch leider klappt der aufruf in dem skript nicht
    PHP-Code:
    <?
    error_reporting(E_ALL);

    function skipLine(){
        $handle = fopen ('test.xml' , "r");
        $buffer = fgets($handle, 4096);
        
    }

    function readXML($file){
    $handle = fopen ('test.xml' , "r");    


    while (!feof($handle)) {
        $buffer = fgets($handle, 4096);
        if(preg_match("/<album>/",$buffer)){
            
            $pattern = array(
            "id" => "/(<id>)(.*)(<\/id>)/",
            "artist" => '/(<artist>)(.*)(<\/artist>)/',
            "artist_id" => '/(<artist_id>)(.*)(<\/artist_id>)/',
            "title" => '/(<title>)(.*)(<\/title>)/',
            "label" => '/(<label>)(.*)(<\/label>)/',
            );
            $rep = '${2}';
            
            //$buffer = fgets($handle, 4096);
            skipLine();
            $id = preg_replace($pattern["id"],$rep,$buffer);
            $buffer = fgets($handle, 4096);
            $artist = preg_replace($pattern["artist"],$rep,$buffer);
            $buffer = fgets($handle, 4096);
            $buffer = fgets($handle, 4096);
            $album_name = preg_replace($pattern["title"],$rep,$buffer);
            $buffer = fgets($handle, 4096);
            $buffer = fgets($handle, 4096);
            $buffer = fgets($handle, 4096);
            $label = preg_replace($pattern["label"],$rep,$buffer);
            
            
            echo $id . "<br>";
            echo $artist . "<br>";
            echo $album_name . "<br>";
            echo $label . "<br>";
            
            
        }
    }

    fclose ($handle);
    }
    readXML('test.xml');
    ?>
    Der Aufruf von skipLine(); wird einfach ignoriert.
    Vielen dank für Hilfe
    Zuletzt geändert von iberican; 18.12.2007, 00:12.

  • #2
    Mir hängt das erwähnen zwar mitlerweile zum Hals raus, aber: cURL!

    Edit: Ich meine natürlich simpleXML. Ich muss ins Bett ...
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      entschuldige bitte,
      aber was hat das mit dem aufruf der funktion zu tun?

      Kommentar


      • #4
        Soviel, als dass du Funktionen nachbaust, die PHP schon mitbringt!
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Kommentar


        • #5
          ok habe es nun
          PHP-Code:
          function skipLine($handle$anz){
                  for (
          $i=0;$i<$anz;$i++) {
                      
          $tmpBuffer fgets($handle4096);
                  }
              return 
          $tmpBuffer;
              

          und später dann
          PHP-Code:
          $buffer skipLine($handle,1); 

          Kommentar


          • #6
            Tja, wenn du das Rad halt neu erfinden willst ...
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Kommentar


            • #7
              darum geht es nicht.
              erkläre mir doch bitte wie ich meine 45 mb große datei einbinde und in simplexml bearbeite.
              ich verwende fgets nur weil die datei so ewig groß ist

              Kommentar


              • #8
                45 MB Daten durch preg_replace() nudeln ... machst du hoffentlich nur per Cron.

                Kommentar


                • #9
                  Auch per cron wird der speicherverbrauch ZU GROSS sein denke ich.

                  Kommentar


                  • #10
                    Original geschrieben von iberican
                    darum geht es nicht.
                    erkläre mir doch bitte wie ich meine 45 mb große datei einbinde und in simplexml bearbeite.
                    Warum sollte simpleXML damit Probleme haben?
                    [FONT="Helvetica"]twitter.com/unset[/FONT]

                    Shitstorm Podcast – Wöchentliches Auskotzen

                    Kommentar


                    • #11
                      ich wüsste nich wie ich das dokment laden kann

                      Kommentar


                      • #12
                        Original geschrieben von iberican
                        ich wüsste nich wie ich das dokment laden kann

                        http://ch2.php.net/manual/de/functio...-construct.php
                        http://ch2.php.net/manual/de/functio...-load-file.php
                        Freedom is a state of mind. Not a state in which we live.

                        troxdev.ch | animefieber

                        Kommentar

                        Lädt...
                        X