Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Undefined offset nach Preg_Match

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Undefined offset nach Preg_Match

    Hallo,

    da ich mir schon längere Zeit über ein kleines Problem den Kopf zerbreche und bestimmt irgendetwas banales übersehe muss ich heute meinen ersten Beitrag hier Posten :P

    Der folgende Code funktioniert einwandfrei

    PHP-Code:
    error_reporting(E_ALL);

    class 
    igc_file {
            
        var 
    $igc = array();

        function 
    read_header($filePath){
            
            
    $file file($filePath);
                
            foreach (
    $file as $line) {
                
                if(!isset(
    $this->igc['device']['type'])) {
                    
    preg_match("/^A(.{3})(.*)/s"$line$temp);
                    
    $this->igc['device']['type']         = $temp[1]."111111";
                    
    $this->igc['device']['Number']     = trim($temp[2])."bla";
                }

                if(!isset(
    $this->igc['date'])) {
                    
    preg_match('/^HFDTE(\d\d)(\d\d)(\d\d)/s'$line$temp);
                    
    $this->igc['date'] = $temp[3]; //HIER!
                    
                
    }
            }        
        }
        
        function 
    print_igc() {
            
            
            echo 
    "Print:<br><br><pre>";
            
    print_r($this->igc);
            echo 
    "</pre>";
        }
    }


    $igc = new igc_file;

    $igc->read_header("1.igc");

    $igc->print_igc(); 
    Wenn ich jedoch die mit HIER markierte Zeile ändere in
    PHP-Code:
    $this->igc['date'] = "20".$temp[3]; 
    erhalte ich als Fehlermeldung:
    Notice: Undefined offset: 3

    Und die Ausgabe von igc['date'] beinhaltet ausschließlich 20

    Ich stehe echt auf dem Schlauch, wäre super wenn jemandem was einfällt.

    Thx!!

  • #2
    Schau dir mal var_dump($temp) an.
    [URL="http://php.net/manual/en/migration55.deprecated.php"]mysql ist veraltet[/URL] [URL="http://php-de.github.io/jumpto/mail-class/"]Mails senden: Ohne Probleme und ohne mail()[/URL]
    [PHP]echo 'PS: <b>Meine Antwort ist keine Lösung, sondern nur eine Hilfe zur Lösung.</b>';[/PHP]

    Kommentar


    • #3
      Das habe ich auch schon gemacht, ist sehr interessant, wenn ich nach dem preg_match und vor der Zuweisung von $this->igc ein var_dump() einsetze zeigt dieser wie erwartet meine Treffer.
      Sobald ich dann wieder $temp mit einem String verkette gibt var_dump ein leeres Ergebnis, und das obwohl die Ausgabe vorher stattfindet !?

      Kommentar


      • #4
        Tatsächlich ein sehr blöder Fehler, der erste Durchlauf setzt igc['date'] auf 20 und im zweiten wird der Wert nicht mehr überschrieben durch das isset

        Kommentar

        Lädt...
        X