Brauche Hilfe zum verarbeiten von CSV ausgabe

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

  • #31
    muss ich dafür nich immer eine datei mit der csv auslesen?? ich hab einfach einen string der bereits in einer variable gespeichert ist..

    Kommentar


    • #32
      Nein. fgetcsv() erwartet nur einen Dateizeiger. Ob dieser Zeiger auf eine wirkliche Datei zeigt oder nicht, ist ihm egal.

      Kommentar


      • #33
        also ich bekomm das mit diesem fgetcsv einfach nicht mehr hin.. ich weiss nicht wie ich anfangen soll und erst die csv "namen" auszulese und diese dann mit den etsprechenden werten im zweidimensionalen array (siehe beispiel oben und beiträge zuvor) zu füllen.

        kann mir nicht jemand einen schnellen gedankenanstoß oder ein kurzes beispiel nennen?

        Kommentar


        • #34
          kann mir nicht jemand einen schnellen gedankenanstoß oder ein kurzes beispiel nennen?
          Klar kann ich das!

          Aber eigentlich solltest du ein solches Problem doch selber in den Griff bekommen...

          Nagut, auf das Risiko hin, dass du davon keinen Piep verstehst:

          Testdaten:
          Code:
          decimal;integer;string
          4.0;5;retrz
          4.5;14;"trtert ret ert"
          5.0;24;"fdfdf""sdfdsf"
          5.5;33;fdfdf'sdfdsf
          6.0;41;fdfdfsdfdsf
          6.5;49;"fdfdfs;;;dfdsf"
          7.0;57;fdfdf""sdfdsf
          7.5;64;"fdfdf"";""sdfdsf"
          Beispiel:
          PHP-Code:
          <?php
          error_reporting
          (-1);
          ini_set('display_errors'TRUE);
          setlocale(LC_ALL,'de_DE@euro''de_DE',  'de''ge');
          date_default_timezone_set('Europe/Berlin');
           


          class 
          CsvIterator implements Iterator
          {
              private 
          $fh        false;
              private 
          $data      = array();
              private 
          $pos       0;
              private 
          $length    16384;
              private 
          $delimiter ',';
              private 
          $enclosure '"';

              public function 
          __construct($filename,$length=16384$delimiter=',',$enclosure='"')
              {
                  
          $this->fh           fopen($filename,'r');
              if(!
          $this->fh) throw Exception("File $filename open failed!");
                  
          $this->length       $length;
                  
          $this->delimiter    $delimiter;
                  
          $this->enclosure    $enclosure;
              }

              public function 
          rewind()
              {
                  
          $this->pos 0;
                  
          rewind($this->fh);
                  
          $this->data fgetcsv($this->fh,$this->length,$this->delimiter,$this->enclosure);
              }

              public function 
          current()
              {
                  return 
          $this->data;
              }

              public function 
          key()
              {
                  return 
          $this->pos;
              }

              public function 
          next()
              {
                  
          $this->data fgetcsv($this->fh,$this->length,$this->delimiter,$this->enclosure);
                  ++
          $this->pos;
              }

              public function 
          valid()
              {
                  return (bool)    
          $this->data;
              }

            public function 
          __destruct()
            {
                
          fclose($this->fh);
            }


          class 
          CsvNamesFirstIterator extends CsvIterator
          {
            private 
          $names = array();
            
              public function 
          current()
              {
                  return 
          array_combine($this->names,parent::current());
              }
              
              public function 
          rewind()
              {
              
          parent::rewind();
              if(!
          $this->valid()) throw Exception("File is empty (no names found)!");
                  
          $this->names parent::current();
                  
          $this->next();
            }

            public function 
          key()
            {
              return 
          parent::key() - ;
            }
          }

          // testcode
          $ite = new CsvNamesFirstIterator('daten.csv',1000,';');
          foreach (
          $ite as $key=>$value)
          {
            
          print_r($value);
            echo 
          '<br>';
          }
          Wir werden alle sterben

          Kommentar


          • #35
            danke für deine Bemühungen!!!

            aber ich habe den csv String in der Variable $csv stehen und dein Code liest eine Datei aus.. daher bekomme ich Fehlermeldungen wie

            PHP-Code:
            Warningrewind() expects parameter 1 to be resourcestring given in D:\xampp\htdocs\test.php on line 73

            Warning
            fgetcsv() expects parameter 1 to be resourcestring given in D:\xampp\htdocs\test.php  on line 74

            Fatal error
            Call to undefined function Exception() in D:\xampp\htdocs\test.php on line 116 
            leider bekomme ich das nicht wirklick hin den code so umzuschreiben, da ich nicht objekorientiert programmiere ...

            Wäre cool wenn du den code eben noch für eine Variable hast

            Kommentar


            • #36
              Hallo,

              den Code dafür gibt's sogar fertig im Handbuch: PHP: Example class registered as stream wrapper - Manual

              Gruß,

              Amica
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #37
                Nur befürchte ich, dass das nix bringt, wenn url_fopen_wrapper deaktiviert ist.
                Und nein, ich schreibe das nicht um.
                Wir werden alle sterben

                Kommentar

                Lädt...
                X