Ergebnis 1 bis 10 von 10

Thema: 7 is not a valid stream resource

  1. #1
    Teeny
    Registriert seit
    09.03.2007
    Beiträge
    46
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 7 is not a valid stream resource

    Hallo,

    ich hab ein PHP-Skriopt geschrieben, zum auslesen von Kommaseparierten Dateien. mit folgendem Quelltext:
    Code:
       <?php
        $verzeichnis = "export/";
        $mail_template = "mail_template.txt";
        $log_datei = "log_dhl.txt";
        $betreff = "Paketversand";
        $ok = 0;
        $fehler = 0;
        
        //Klasse einbinden
        require&#40;'phpmailer/class.phpmailer.php'&#41;;
        
        $log_fp = fopen&#40;$log_datei, "a+"&#41;; // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
        
        $handle = opendir&#40;$verzeichnis&#41;;
        while&#40;$file = readdir&#40;$handle&#41;&#41;
        &#123;
            if&#40;substr&#40;$file, -4&#41; == ".txt"&#41; &#123;
                $pfad = $verzeichnis."/".$file;
                $Dateizeiger = fopen&#40;$pfad, "r"&#41;;
                    while&#40;&#40;$Daten = fgetcsv&#40;$Dateizeiger, 1000, ";"&#41;&#41; !== FALSE&#41;
                    &#123;
                        $zeile = "";
                        $paketid = $Daten&#91;1&#93;;
                        $name1 = $Daten&#91;17&#93;;
                        $name2 = $Daten&#91;18&#93;;
                        $emailadresse = $Daten&#91;19&#93;;
                        $plz = $Daten&#91;31&#93;;
                        $ort = $Daten&#91;33&#93;;
                        $strasse = $Daten&#91;34&#93;;
                        $hausnummer = $Daten&#91;42&#93;;
                        
                        
                        if&#40;!strcmp&#40;$Daten&#91;25&#93;,"N"&#41;&#41;
                        &#123;
                            $nachname_flag = true;
                        &#125;
                        else
                        &#123;
                            $nachname_flag = false;
                        &#125;
                        $nachname_preis = $Daten&#91;27&#93;;
                        
                        
                        $datei = fopen&#40;$mail_template , "r"&#41;;
                        $text = fread&#40;$datei , 1000&#41;;
                        fclose&#40;$datei&#41;;
                        
                        $text = str_replace&#40;"%IDENTCODE%",$paketid,  $text&#41;;
                        
                        $name = $name1." ".$name2;
                        $name = trim&#40;$name&#41;;
                        $text = str_replace&#40;"%NAME%", $name,  $text&#41;;
                        $text = str_replace&#40;"%STRASSE%", $strasse, $text&#41;;
                        $text = str_replace&#40;"%HAUS_NR%", $hausnummer, $text&#41;;
                        $text = str_replace&#40;"%PLZ%", $plz, $text&#41;;
                        $text = str_replace&#40;"%ORT%", $ort, $text&#41;;
                        $text = str_replace&#40;"%IDC%", $paketid, $text&#41;;
                        
                        if&#40;$nachname_flag&#41;
                        &#123;
                            $nachname_string = "Fälliger Nachnamebetrag&#58; ".$nachname_preis." Euro";
                            $text = str_replace&#40;"%NACHNAME%", $nachname_string,  $text&#41;;
                         &#125;
                         else
                         &#123;
                            $text = str_replace&#40;"%NACHNAME%", " ",  $text&#41;;
                         &#125;    
                          //Instanz von PHPMailer bilden
                          $mail = new PHPMailer&#40;&#41;;
                         
                          //Absenderadresse der Email setzen
                          $mail->From = "versand@natterer-modellbau.de";
                        $mail->IsSMTP&#40;&#41;; //Versand über SMTP festlegen
                        $mail->Host = "smtp.1und1.de"; //SMTP-Server setzen
                        $mail->SMTPAuth = true;     //Authentifizierung aktivieren
                        $mail->Username = "versand@natterer-modellbau.de";  // SMTP Benutzername
                        $mail->Password = "6iAy5ok7"; // SMTP Passwort
                        
                        
                          //Name des Abenders setzen
                          $mail->FromName = "Natterer Modellbau";
                          
                          //Empfängeradresse setzen
                          $mail->AddAddress&#40;$emailadresse&#41;;
                          
                          //Betreff der Email setzen
                          $mail->Subject = "Versandlink DHL";
                         
                          //Text der EMail setzen
                          $mail->Body = $text;
          
                        
        
                        if&#40;!$mail->Send&#40;&#41;&#41;
                          &#123;
                            echo '<tr bgcolor="#FF0000">';
                                echo '<td>'.$paketid.'</td>';
                                echo '<td>'.$name1.' '.$name2.'</td>';
                                echo '<td>'.$emailadresse.'</td>';
                                echo '<td>'.$mail->ErrorInfo.'</td>';
                            echo '</tr>';
                            $fehler++;
                            //Logzeile vorbereiten
                             $datum = date&#40;"d.m.Y"&#41;;
                            $uhrzeit = date&#40;"H&#58;i"&#41;;
                            $zeile = "\n".$datum." - ".$uhrzeit." Uhr;".";".$paketid.";".$name1." ".$name2.";".$emailadresse.";".$mail->ErrorInfo.$paketid;
                            fwrite&#40;$log_fp , $zeile&#41;; // Dateiinhalt in die Datei schreiben
                            echo "
    ";
                            fclose&#40;$Dateizeiger&#41;;
                            $t1 = $verzeichnis."/".$file;
                            $t2 = $verzeichnis."fehler/".$file;
                            copy&#40;$t1,$t2&#41;;
                          &#125;
                          else
                          &#123;
                             echo '<tr bgcolor="#00FF00">';
                                echo '<td>'.$paketid.'</td>';
                                echo '<td>'.$name1.' '.$name2.'</td>';
                                echo '<td>'.$emailadresse.'</td>';
                                echo '<td>OK</td>';
                            echo '</tr>';
                            $ok ++;
                            echo "
    ";
                            fclose&#40;$Dateizeiger&#41;;
                            
                          &#125;
                          unlink&#40;$verzeichnis."/".$file&#41;;
                    &#125;
                    
                     
                
                
            &#125;
            
        &#125;
        fclose&#40;$log_fp&#41;; // Datei schließen    
    
    closedir&#40;$handle&#41;;
    echo '</table>';
    echo '
    ';
    $gesamt = $ok + $fehler;
    echo 'Es wurden '.$gesamt.' Emails versendet, davon&#58;
    ';
    echo $ok.' mit Status OK 
    ';
    echo $fehler.' mit Status Fehler <br / >';
    ?>
    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&#58;  fgetcsv&#40;&#41;&#58; 7 is not a valid stream resource in /opt/lampp/htdocs/dhl_versand.php on line 40
    Die Zeile 40 ist folgende:
    Code:
    while&#40;&#40;$Daten = fgetcsv&#40;$Dateizeiger, 1000, ";"&#41;&#41; !== FALSE&#41;
                    &#123;
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hmm sollte gehen, kann da keinen fehler festellen... kommt der fehler den erst mit der zeit oder immer bem ersten schleifen durchlauf?

  3. #3
    Forum Guru
    Registriert seit
    04.04.2005
    Beiträge
    4.139
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Kann es sein das das CSV nicht valid ist?
    Facebook Gruppe: Böses Encoding

  4. #4
    Teeny
    Themenstarter

    Registriert seit
    09.03.2007
    Beiträge
    46
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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?

  5. #5
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also ich mache es meist so

    Code:
    foreach&#40;file&#40;'deine_datei'&#41; AS $row&#41;
    &#123;
     $row = explode&#40;';', $row&#41;;
    
      # dein code
    &#125;
    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.

  6. #6
    Teeny
    Themenstarter

    Registriert seit
    09.03.2007
    Beiträge
    46
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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&#58;>
    foreach&#40;file&#40;<aktuelleDatei>&#41; AS $row&#41;
    &#123;
     $row = explode&#40;';', $row&#41;;
    
      echo row&#91;1&#93;;
    &#125;
    </Solange>
    Hab ich das richtig verstanden??

  7. #7
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    genau

  8. #8
    Teeny
    Themenstarter

    Registriert seit
    09.03.2007
    Beiträge
    46
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    vielen Dank,
    ich werds am Montag gleich mal ausoprobieren...

  9. #9
    Teeny
    Themenstarter

    Registriert seit
    09.03.2007
    Beiträge
    46
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    funktioniert prima mit dem Explode.

    Das ganze sieht jetzt so aus:
    Code:
    $verzeichnis = "export/gls/";
    	$ok = 0;
    	$fehler = 0;
    	
    	handle = opendir&#40;$verzeichnis&#41;;
    	while&#40;$file = readdir&#40;$handle&#41;&#41;
    	&#123;
    		if&#40;substr&#40;$file, -4&#41; == ".csv"&#41; &#123;
    			$pfad = $verzeichnis.$file;
    			 foreach&#40;file&#40;$pfad&#41; AS $row&#41;
    				&#123; 
    					$row = explode&#40;';', $row&#41;;
    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?

  10. #10
    Forum Guru
    Registriert seit
    04.04.2005
    Beiträge
    4.139
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Dazu brauchst du implode und file_put_contents
    Facebook Gruppe: Böses Encoding

Ähnliche Themen

  1. Resource id #6
    Von Problem im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 5
    Letzter Beitrag: 15.12.2007, 22:09
  2. fputs(): supplied argument is not a valid stream resource ..
    Von 123kartoffelbrei im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 13.12.2007, 09:13
  3. css valid-fehler
    Von jojo87 im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 03.09.2007, 00:46
  4. Resource id #3
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 15.11.2005, 16:26
  5. Valid HTML 4.01!
    Von Mitch im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 30.12.2003, 00:43

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •