Ankündigung

Einklappen
Keine Ankündigung bisher.

echo Ausgabe bleibt leer ...

Einklappen

Neue Werbung 2019

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

  • echo Ausgabe bleibt leer ...

    Hallo allerseits,
    vorweg, ich habe hier schon gefragt, aber leider noch keine Antwort bekommen.
    Ich würde mich freuen, wenn mir hier jemand helfen könnte.

    Also, ich versuche gerade für meine Haus-Visu die invert-Suche von Klicktel zu benutzten und habe da mal eine Frage, "Warum bleibt meine echo-ausgabe leer?"

    Hier meine Code:
    PHP-Code:
     <?php
    /*
        Rueckwaertssuche von Telefonnr. mit Klicktel
        Ganze Seite einlesen und nur eine Zeile ausgeben,
        die mit dem Namen
    */

    $Rufnummer '123456789';
    // Einlesen der gesamten Seite in ein Array
     
    $lines file ("http://www.klicktel.de/rueckwaertssuche/'.$Rufnummer.'");
     
    for (
    $i 539$i <= 541$i++) {
    $bereinigt strip_tags($lines[$i],"");

    $str $bereinigt;
    $str preg_replace('/1./'' '$str);

    //echo $str;
    return $str;
    }
    echo 
    $str;
    ?>
    Bei dem ersten echo $str; (vor dem return) bekomme ich eine Ausgabe, aber bei dem zweiten echo $str; nix ?

    Warum ? Und wie kann ich das in eine Variable packen um es weiter benutzen zu können ?

    Kleine Anmerkung, ich bin PHP Anfänger und das sind meine ersten geh versuche
    Ich bitte deshalb um Nachsicht und freue mich auf Eure Hilfe.

    LG
    Stefan

  • #2
    Weißt du was return macht? Ich zitiere:
    Zitat von http://at1.php.net/return
    If called from the global scope, then execution of the current script file is ended.
    Die Frage ist: Was willst du mit dem return? An wen willst du etwas zurückgeben?

    Kommentar


    • #3
      1. ?> weg
      2. "'.$Rufnummer.'" => "{$Rufnummer}"
      3. $variablen fangen per Konvention immer mit einem kleinen Buchstaben an.
      4. nicht file() => file_get_contents(). Besser curl
      5. Hast du die erlaubnis von klicktel deren Seite automatisiert zu parsen?
      6. Du (deine IP) wird wahrscheinlich schnell gesperrt
      7. Zum Parsen von HTML eignet sich nichts besser als XPATH.

      Dann sähe der Code in einem Vor-Alpha-Stadium so aus:

      PHP-Code:
      <?php
      $rufnummer 
      '123456789';

      $content file_get_contents("http://www.klicktel.de/rueckwaertssuche/{$rufnummer}");

      $doc = new DOMDocument();
      @
      $doc->loadHTML($content);

      $xpath = new DOMXPath($doc);
      $firstEntry $xpath->evaluate('//div[contains(@class, "results")]/article[1]')->item(0);

      if(
      $firstEntry) {
          echo 
      $xpath->evaluate('./h4'$firstEntry)->item(0)->nodeValue;
          echo 
      $xpath->evaluate('./div'$firstEntry)->item(0)->nodeValue;
      }

      Kommentar


      • #4
        Nein, ich denke nicht, das dein Vorhaben auf diese Weise Erfolg haben wird.

        Erstmal zu deinem vordergründigen Problem:
        Dein Code macht nur exakt eine Ausgabe, weil du am Ende der Schleife ein "return $str" stehen hast. Das verlässt nicht nur die Schleife, sondern das gesamte Script. Das "echo $str" hinter der Schleife wird nie erreicht, was dir im Browser angezeigt wird, ist der return-Wert.

        Zum restlichen Vorhaben:
        Idee ist ok, aber die Umsetzung wird so leider nicht funktionieren. Eine minimale Änderung im HTML und dein Code macht nicht mehr, was er soll. Aller Anfang ist schwer, überstürz es nicht gleich. Fang klein an und arbeite dich langsam vor. Tiefergehende Erklärungen sind an dieser Stelle überflüssig, weil dir die Grundlagen fehlen...

        http://www.php.de/php-einsteiger/489...rundlagen.html

        Hinter dem Link findest du einen ganzen Haufen Infos zur Programmierung, insbesondere von den Tutorials solltest du dir ein paar anschauen und durcharbeiten...
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          Hallo allerseits,
          habe das Problem lösen können.
          Hier mein Code, ist vieleicht nicht Sauber, aber funktionert

          PHP-Code:
          <?php
          /*
              Rueckwaertssuche von Telefonnr. mit Klicktel
              Ganze Seite einlesen und nur eine Zeile ausgeben,
              die mit dem Namen
          */

          $rufnummer 'xxxxxxxx';
           
          $htmlsource file("http://www.klicktel.de/rueckwaertssuche/{$rufnummer}");

          $bereinigt strip_tags($htmlsource[539],"");         // entfernt HTML Tags

          $ausgabe2 preg_replace("/[\d \.\,]/si" '' $bereinigt);   // entfernt die 1 und den .

          $name $ausgabe2;                       // ersetzt das leere Namensfeld mit dem Namen aus Klicktel

          echo $name;                        // Ausgabe nur der Name
          ?>
          Vieleicht kann es ja jemand gebrauchen.

          Danke.

          Kommentar

          Lädt...
          X