externe Seite nach Begriffe durchsuchen

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

  • externe Seite nach Begriffe durchsuchen

    Hallo,

    ich bin zwar schon einigermaßern erfahren in PHP, stelle mich aber dennoch vor ein ziemlich unlösbares Problem.

    Ist es möglich durch Angabe einer URL den Quellcode nach bestimmten Begriffen zu durchsuchen und auszulesen ???

    Also als Beispiel:

    Ich will auf meiner Seite als PHP Script ausgeben, was die neusten Schlagzeilen von www.web.de sind. Dazu müsste ich die URL irgendwie in PHP eingeben, und dann per Funktion (das ist die Frage wie das nun geht) dann nach dem Begriff "Schlagzeilen" suchen, und dann dem Quellcode die nächsten 100 Zeilen rauskopieren...


    Ich weiß, das dies warscheinlich illegal ist, aber ich will es für meine eigene Seite auf einem anderen Server benutzen, dachte nur dass dieses Beispiel es am einfachsten Beschreiben könnte.

  • #2
    das funktoniert mit

    PHP-Code:
    $seite=file($url); 
    dann kannst du das Array $seite durchsuchen

    da sind deine Freunde stristr, explode usw.

    Kommentar


    • #3
      Das nennt man Kontentklau und alle, die danach fragen, wollen sich nur selbst beklauen.

      Mit allow_url_fopen=on wäre es ein Zweizeiler:
      PHP-Code:
      $site file_get_contents($url);
      echo 
      strpos($site$search) !== false 
          
      substr($sitestrpos($site$search), $length
          : 
      'nichts gefunden'
      Aber wie dein einigermaßern erfahrenes Auge erkennt, werden nicht 100 Zeilen sondern $length Zeichen ausgegeben. Begründung: Beides ist Schwachsinn, aber obige Variante ist kürzer.

      Wenn das gesuchte Wort irgendwo in der Seite steht und du von der Fundstelle an X Zeichen oder Zeilen ausgibst, dann gibst du damit HTML-Code aus, der ganz sicher nicht zur HTML-Struktur deiner Seite passt.

      Mit htmlspecialchars(substr(...)) ist dir auch nicht geholfen, denn du willst deinen Usern ja nicht den Quelltext zeigen ...

      Also brauchst du einen regulären Ausdruck, der jedweden HTML-Code aus der Seite entfernt. Könnte so aussehen:
      PHP-Code:
      $site file_get_contents($url);
      $site preg_replace('/<.*>/U'''$site);
      echo 
      strpos($site$search) !== false 
          
      substr($sitestrpos($site$search), $length
          : 
      'nichts gefunden'
      Der Ausdruck ist allerdings nicht optimal. Falls du ihn wirklich unverändert verwenden willst, kannst du statt preg_replace() auch strip_tags() bzw. gleich fgetss().

      Kommentar


      • #4
        Original geschrieben von newphp
        das funktoniert mit ...
        Nein, funktioniert nicht.

        Gegenbeispiel: Das sei die zu durchsuchende Webseite
        Code:
        Such\n
        wort ...
        file() macht daraus array('Such\n', 'wort') und wenn ich das nach 'Suchwort' durchsuche, werde ich nicht fündig. Sollte ich aber, denn wenn ich die Seite im Browser lade, sehe ich 'Suchwort'.

        Kommentar


        • #5
          sorry hab mich verlesen in dem Fall findet er das nicht da geb ich dir recht....
          Zuletzt geändert von newphp; 08.08.2006, 14:43.

          Kommentar


          • #6
            cool, danke dass ihr mir so schnell geantwortet habt. Denke das wird funktionieren

            Kommentar


            • #7
              Hallo,
              über diesen Befehl kann mann den Inhalt der Seite direkt auslesen!
              Man muss also nicht den Quelltext bearbeiten oder editieren!

              PHP-Code:
              $fp = @fopen("http://www.yyy.de","r");

              while(!
              feof($fp))
              {
              $zeile fgets($fp200); //200 Anzahl Zeichen einer Zeile
              }

              fclose($fp); 

              Innerhalb der Schleife werden immer die einzelnen Zeilen der Seite
              ausgegeben und können dort durchsucht werden!

              Funktioniert bei mir sehr gut!

              Kommentar


              • #8
                @hgssven: Unterschied zu file_get_contents()?

                Kommentar

                Lädt...
                X