Notice: Undefined offset: 0 - Fehler abfangen

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

  • Notice: Undefined offset: 0 - Fehler abfangen

    hi,
    ich habe folgendes Problem, ich greife mit file_get_contents
    auf eine externe URL zu um dort Daten auszulesen, das funzt auch perfekt nun hab ich aber folgendes problem:

    PHP-Code:
    $url3 "http://www.firemike.de/user.php&PID=".$pid."&SrchName=&Profiles=";

    $file3 file_get_contents($url3False);

    $pin "points of stat";

    $endstring3 "end_point";

    preg_match_all('|'.preg_quote($pin).'(.*)'.preg_quote($endstring3).'|isU'$file3$match20);

    $wert20 $match20[1][0]; 
    So zwischen $pin und $endstring3 steht ein wert den ich auslese, das funzt.

    Wenn allerdings $pin nicht "points of stat" heisst bekomme ich Fehlermeldung:

    Notice: Undefined offset: 0

    Wie kann ich nun diesen Fehler abfangen ?
    Also wenn $pin nicht gefunden wird, das dann $wert20 = 0 ist ??

    Grüsse mike

    P.S. Ich hoffe das war einigermassen verständlich.

  • #2
    lass dir in beiden fällen $match20 mittels print_r ausgeben.
    dann kannst du mit isset() das gesuchte abfragen.

    aber warum parst du deine eigene seite? stelle die daten doch in einer leserlichen form ins internet - dann kannst du sie problemlos herausnehmen (z.b. mit xml).

    Kommentar


    • #3
      hi, danke für die antwort;

      das ergebniss von:
      print_r match20);

      ist: Array ( [0] => Array ( ) [1] => Array ( ) )

      aber irgendwie versteh ich jetzt immer noch nicht ganz wie ich das mit

      isset() prüfen kann ?

      KAnnste mir das kurz erklären ?
      Evtl so: ??

      isset((Array ( [0] => Array ( ) [1] => Array ( ) ) {
      wert20 == "0"
      }

      oder wie.... sorry bin noch anfäger


      grüsse mike

      Kommentar


      • #4
        du erwartest ja, dass das erste unterarray ein element mit dem index 0 besitzt.
        das kannst du abfragen (schau doch im manual, wie man die funktion benutzt), indem du genau dieses element mit isset untersuchst.

        die wichtigste frage hast du noch nicht beantwortet.

        Kommentar


        • #5
          ahhhh jetzt hab ich kapiert, das erste unterarray hat ja null weil nix drinnen steht und das kann ich abfragen.

          Und ich parse natürlich eine fremde seite, nicht meine ich wollte nur die richtige url nicht hinschreiben

          Geheimsache....lol

          grüsse mike und danke

          Kommentar


          • #6
            das erste unterarray hat ja null weil nix drinnen steht und das kann ich abfragen.
            nein. schau dir das kapitel "arrays" im manual an, dort wird erklärt, wie indizes eingesetzt werden.

            und content-klau ist grundsätzlich verboten. sprich mit dem seitenbetreiber ab, ob du das darfst, evtl. stellt er dir eine richtige schnittstelle zur verfügung.

            Kommentar


            • #7
              shit ich kriegs net hin, hat vielleicht jemand ein beispiel für mich ????

              Kommentar


              • #8
                wie sieht's denn bis jetzt aus?

                Kommentar


                • #9
                  so:

                  PHP-Code:
                  preg_match_all('|'.preg_quote($pin).'(.*)'.preg_quote($endstring3).'|isU'$newfile3$match20);
                  $wert20 $match20[1][0];
                  if (
                  in_array("0"$match20)) {
                     
                  $wert20 == "0";

                  Kommentar


                  • #10
                    habe ich dich nicht auf isset aufmerksam gemacht?
                    hast du anhand der beispiele im manual versucht es einzusetzen?

                    Kommentar


                    • #11
                      @topicstarter
                      Du musst bevor du mit der fraglichen Variabel irgendetwas machst, diese erst prüfen. Du machst vor der Prüfung in deinem Code eine Zuweisung. Und diese wird in die Hose gehen, wenn das Array keine Treffer liefert --> PHP wird mit einer Notice reagieren
                      Also mach die Prüfung unmittelbar nach dem preg_match(), alles weitere zur Verwendung von isset() wurde dir bereits gesagt.

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        versucht hab ich schon vieles, ich steh grad im wald und seh die bäume nicht.....oooohhhh mannnn...

                        ich komm net drauf...

                        Kommentar


                        • #13
                          jammern ist schon mal ganz schlecht.
                          fang mal klein an und lies dir peterkropff.de und tut.php-q.net mal komplett durch. dort wird in vielen beispielen klargemacht, wie man solche fälle kontrolliert.

                          Kommentar


                          • #14
                            ok danke......

                            Kommentar


                            • #15
                              also ich kann lesen was ich will und trotzdem funzt gar nix....
                              ich gebs auf..... is mir zuheiss heute...

                              Kommentar

                              Lädt...
                              X