Ankündigung

Einklappen
Keine Ankündigung bisher.

foreach mit parse_str funktioniert nicht - undefinied index

Einklappen

Neue Werbung 2019

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

  • foreach mit parse_str funktioniert nicht - undefinied index

    Hallo zusammen

    ich habe folgenden PHP Code:

    Code:
    <?php
    $file = "Links.txt"; 
    $parts = new SplFileObject($file); // this is your array of words
    foreach($parts as $word) { 
          $content = file_get_contents($word); 
          parse_str($content, $ytarr);
          echo $ytarr['title'];
          unset($content);
    } 
    ?>
    Die "Links.txt" Datei beinhaltet folgenden Inhalt:

    Code:
    http://youtube.com/get_video_info?video_id=Bey4XXJAqS8
    http://youtube.com/get_video_info?video_id=7HaJArMDKgI
    Resultat:


    Notice: Undefined index: title in C:\xampp\htdocs\Example\index.php on line 13
    Driving Downtown - New York City 4K - USA

    Wenn in der "Links.txt" Datei nur eine der URL steht, so funktioniert der PHP code ohne Fehlermledung. Ich habe es mit beiden Links getestet.

    Sobald es aber mehr als 1 ist, kommt diese Meldung. Wobei auch hier, der Titel der letzten URL erfolgriech herausglesen und angezeigt werden kann. Die vorherhigen werden dann mit "Undefined index" gemeldet.

    Habt ihr eine Idee woran dies liegt?

    Vielen Dank für Eure Hilfe bereits im Voraus.

  • #2
    Das liegt an den Zeilenumbrüchen. Versuche das mal:

    PHP-Code:
    $parts->setFlags(SplFileObject::DROP_NEW_LINE); 
    Siehe hier
    sorry, shift-taste kaputt

    Kommentar


    • #3
      Genial, das hat das Problem gelöst. Vielen Dank.
      Kurze Frage: besteht die Möglichkeit diese Regelung als Konstante zu Beginn des PHP scripts zu definieren, um später im PHP Code einfach darauf zuzugreifen, ohne den langen "code" immer einzugeben?

      Ich kenn das vom Scripten (bsp. VBScript), da hat man jeweils die Variable "CONST pi = 3.14", die man zu Beginn des Scripts definiert. Später greift man auf die "PI" Konstante zu, wenn man es braucht.

      Kommentar


      • #4
        PHP-Code:
        SplFileObject::DROP_NEW_LINE 
        ist bereits eine (statische) Konstante, warum willst du diese noch ein zweites mal definieren?

        Kommentar


        • #5

          Alles klar, stimmt.

          Aber ich habe noch eine kurze Frage bzgl. der Problemlösung.

          Welches Vorgehen könnt Ihr mir empfehlen, sodass die Fehlermeldungen mehr aussagekräftig werden.

          Bsp. Mit der oben genannnte Fehlermeldung "Notice: Undefined index: title " wäre ich nie drauf gekommen, dass die Problemursache die Abstände sind. Dazu kommt es, dass die Existenz der "Drop_new_line" Konstante mir bis jetzt unbekannt war.

          Wie geht Ihr in der PHP Welt vor, um die Problemursache besser einzugrenzen ?

          Kommentar


          • #6
            Zitat von bkmaster Beitrag anzeigen
            Wie geht Ihr in der PHP Welt vor, um die Problemursache besser einzugrenzen ?
            Normalerweise schaut man sich mit einem Debugger die Variableninhalte an. Eine Fehlermeldung hat nicht immer was mit der Fehlerursache zu tun, sondern kann auch einfach nur Folgefehler betreffen. In dem Fall musst du dich von der fehlerhaften Stelle nach oben weiterarbeiten, bis du die Ursache gefunden hast.

            In deinem Fall: Fehlermeldung sagt Index 'title' existiert nicht. Warum tut er das nicht? Weil parse_str() den Index nicht aus $content liefert. Warum tut es das nicht? Was steht in $content? usw. usf.

            Kommentar


            • #7
              Bestimmte Variableninhalte lasse ich mir schon im Entwicklungsprozess ausgeben, auch wenn keine Fehler auftreten. Eine Einführung zum Thema Debugging findest du hier.

              Kommentar


              • #8
                OK jetzt wird mir einiges klarer. Welchen IDE resp. Debugger empfehlt Ihr mir bei der Entwicklung von PHP? Eine IDE bei der man in die Variableninhalte rein schauen kann und einiges mehr. Vielen Dank.

                Kommentar


                • #9
                  Für PHP kann wohl ohne Zögern PhpStorm als IDE empfohlen werden, wofür du aber etwas Geld in die Hand nehmen musst. Unter den kostenfreien Editoren ist für mich Visual Studio Code der Renner.

                  Kommentar

                  Lädt...
                  X