aufruf von funktion funktioniert nicht

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by iberican; 17-12-2007, 23: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

    Comment


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

      Comment


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

        Shitstorm Podcast – Wöchentliches Auskotzen

        Comment


        • #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); 

          Comment


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

            Shitstorm Podcast – Wöchentliches Auskotzen

            Comment


            • #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

              Comment


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

                Comment


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

                  Comment


                  • #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

                    Comment


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

                      Comment


                      • #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

                        Comment

                        Working...
                        X