Wie per PHP Daten aus anderen Homepages auslesen?

  • Hi Freax,
    ich möchte gerne aus einer anderen Homepage bestimmte Textteile auslesen.
    Eigenltich sollte das im meinem Beispiel recht einfach zu machen sein, da der Text, den ich auslesen will im ersten <strong> Tag der Seite steht.
    Könnte man die ganze Html Datei als String einlesen und den dann zurechtschnibbeln?
    Mit welchen Funktionen macht man sowas?


    -SF³

  • <?php
    # abruf-url
    $filename = "http://deine.url.hier";
    # Get contents of the specified URL and writes it into a string
    $fd = fopen( $filename, "r" );
    $roh = fread( $fd, 100000 );
    # obiger längenwert muss grösser sein als die erwartete seitengrösse
    fclose( $fd );


    echo $roh; # oder sonstwas :-))
    ?>




    Ach ja, per Gelegenheit verrate mir mal bitte - gern auch per PN - die einzulesende URL.


  • Wenn ich das richtig verstehe (mein Kung Foo is nich so gut) gibt das doch über 10 Umwege nur die Seite aus oder?
    Also muss ich $roh irgendwie auseinanderfriemeln.
    Die URL kann ich dir gerne auch so sagen: http://wetter.ais.fraunhofer.de Die aktuelle Temperatur steht im ersten <strong> Tag - die würd ich halt gern auf einer anderen Seite darstellen.


    -SF³

  • Daher ging mein erster Verweis auf "strpos" das gibt dir die Position eines bestimmten Suchstrings (Needle) innerhalb des Gesamtstrings (Haystack) wieder.


    Du suchst also die Positoin des ersten Vorkommens von <strong>, und dann das erste Vorkommen von </strong>. Mit substr und den zwei Positionswerten kommst du dann an das dazwischen dran.

    "That's not a hair question. I'm sorry." - 01/31/07 - Never forget!

  • Ja, die obigen Ideen sind ganz nett, aber es geht auch trivialer :-))


    Habe mir mal den Quelltext der URL angeschaut, deswegen fragte ich danach.


    Wenn Deine PHP-Umgebung auch MSDOSen-Befehle z. B. unter W2K zulässt, dann:


    schau Dir das PHP - exec an und baue Dir einen MSDOS-Batch


    findstr /c:"Temperatur" tmp.txt>temperatur.txt


    Lies diesen Output wieder ein und bearbeite ihn dann mit strpos wie oben beschrieben.


    Es gibt in PHP auch einen Befehl, der den HTML-Müll auf einen Schlag entfernt,
    $tab = strip_tags ( $tabvorher ); # jetzt alles html raus

  • Zitat

    Original geschrieben von elektrisch
    Glückwunsch, die Lösung ist so einfach, dass sie schon wieder genial ist :D


    Erst hatt ich ja Bedenken, dass das Zählen der Zeichen der Schönheit des Programmes abdinglich wäre aber es hat garnicht so wehgetan.
    Lasst uns einen Extreme Programming Wettbewerb draus machen wer das kleinste Script schreibt :D


    -SF³

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!