7 is not a valid stream resource

  • Hallo,

    ich hab ein PHP-Skriopt geschrieben, zum auslesen von Kommaseparierten Dateien. mit folgendem Quelltext:


    Wobei eigentlich nur die ersten paar interesssant sein dürften, der vollständigkeit halber hab ich alles angefügt.

    Es wird auch alles ausgeführt, allerdings kommt immer noch die Warnung:

    Code
    Warning:  fgetcsv(): 7 is not a valid stream resource in /opt/lampp/htdocs/dhl_versand.php on line 40

    Die Zeile 40 ist folgende:

    Code
    while(($Daten = fgetcsv($Dateizeiger, 1000, ";")) !== FALSE)
                    {
  • wie kann ich ein csv auf validität überprüfen??

    es handelt sich dabei um eine von einm Programm erzeugte, kommaseparierte Datei. Gibt es sonst noch eine Möglichkeit wie ich das ganze einfach auslesen könnte, dass jeweils jeder Block der drin steht, also alles zwischen ; und ; in einem Array-Feld steht?

  • also ich mache es meist so

    Code
    foreach(file('deine_datei') AS $row)
    {
     $row = explode(';', $row);
    
    
      # dein code
    }

    ist die einfachste Methode... ist leider nicht ganz so schön wie die Methode mit fgetcsv.. aber keine ahnung wie sich fgetcsv bei einer umvaliden csv datei verhält... da macht das mit explode weniger ärger.

  • ich bin leider noch nicht ganz so fit in PHP und verstehe drum das ganze noch nicht 100%ig.

    Ich nehme alse meine Datei, und schreibe dann:

    Code
    <Solange Dateien in meinem Verzeichnis mache:>
    foreach(file(<aktuelleDatei>) AS $row)
    {
     $row = explode(';', $row);
    
    
      echo row[1];
    }
    </Solange>


    Hab ich das richtig verstanden??

  • funktioniert prima mit dem Explode.

    Das ganze sieht jetzt so aus:


    allerdings würde ich das ganze jetzt wieder gern in eine .csv datei schreiben,
    wie bekomme ich dass $row inkl. einem weiteren angehängten Feld wieder in eine Datei mit ; getrennt?