Anzeige

html von anderer seite auslesen - ausgabestring

html von anderer seite auslesen - ausgabestring | PSD-Tutorials.de

Erstellt von hoplite, 18.08.2008.

  1. hoplite

    hoplite Nicht mehr ganz neu hier

    Dabei seit:
    03.07.2008
    Beiträge:
    57
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    hi,

    ich verwende ein kleines php-script, um von einer anderen seite einige links auf meiner seite darzustellen.

    Code (Text):
    1. <?php
    2. $host = "http://domain.com";
    3. $filestring = file_get_contents($host);
    4. $startpos = 0;
    5. while($pos = strpos($filestring, "<a href", $startpos))
    6. {
    7. $string = substr($filestring, $pos, strpos($filestring, "</a>", $pos + 1) - $pos);
    8. echo $string."</br>";
    9. $startpos = $pos + 1;
    10. }
    11. ?>
    das funktioniert eigentlich auch schon ganz gut. allerdings werden die links so:

    meine_domain.com/der/angehängte/pfad/ist/wie/er/sein/soll(von_der_zielseite)

    ausgegeben. das funktioniert natürlich nicht und erzeugt ein 404error.

    kann mir jemand sagen, wie ich das php verändern müßte, das die links so:

    andere_domain.com/der/angehängte/pfad/ist/wie/er/sein/soll

    ausgegeben wird?

    mfg, hoplite
     
    #1      
  2. LowkaZ

    LowkaZ Half Life

    Dabei seit:
    19.01.2006
    Beiträge:
    697
    Geschlecht:
    männlich
    Ort:
    Dudweiler
    Software:
    Textmate, WordPress, jQuery, PHP5, MySQL, CSS3, HTML5
    Kameratyp:
    Leica
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    Ein Content-Dieb wie süß :)
    str_replace ist dein freund...
     
    #2      
  3. hoplite

    hoplite Nicht mehr ganz neu hier

    Dabei seit:
    03.07.2008
    Beiträge:
    57
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    nene, nix dieb, sollte eigentlich legal sein :)

    also zum thema, ich weiß, das wird in den foren meistens nicht so gerne gemacht, aber da ich ziemlicher php-anfänger bin, mag mir jemand ein beispiel posten, wie ich den code verändern müßte, damit die richtigen links ausgegeben werden?

    wäre halt echt super...
     
    #3      
  4. motsch

    motsch Nicht mehr ganz neu hier

    Dabei seit:
    19.07.2006
    Beiträge:
    92
    Geschlecht:
    männlich
    Ort:
    NÖ / Österreich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    eigentlich gehören ihm noch ein paar auf die fingern für sein vorhaben.
     
    #4      
  5. hoplite

    hoplite Nicht mehr ganz neu hier

    Dabei seit:
    03.07.2008
    Beiträge:
    57
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    leute leute, bevor hier der falsche eindruck entsteht, erklär ich lieber kurz, was ich vorhabe :) und zwar ist hier die zielseite ein downloadbereich, auf dem die neuesten updates für ein programm präsentiert werden. und dies infos würde ich gerne auch auf meiner seite präsentieren. das sollte doch im rahmen des legalen sein, oder was meint ihr?
     
    #5      
  6. blackout

    blackout Schaf im Wolfspelz

    Dabei seit:
    12.09.2005
    Beiträge:
    3.359
    Geschlecht:
    männlich
    Ort:
    Würzburg
    Kameratyp:
    Rollei 35 S
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    Bei so bescheuerten Antworten post ich einfach der Provokation wegen jetzt ne ordentliche Anleitung zum Thema "fremde Seiten auslesen".

    Dein file_get_contents funktioniert nur, wenn du wirklich Glück mit dem anderen Server hast, denn eigentlich zielt die Funktion auf das eigene Dateisystem ab. Für andere Hosts gibt es, tadaa, das HTTP. Du musst dich also verbinden, so wie es auch dein Browser etc. tun würde, aaaalso: SOCKS öffnen, HTTP-Query schicken, Antwort auswerten. Ich persönlich mach z.B. das gerne, um mir Newsfeeds von Seiten, die selbst keine bereitstellen, zu erstellen.
    Lies dir als erstes mal dieses Tut durch, da werden die absoluten Grundzüge erläutert.
    Du weißt jetzt also, wie das mit dem Verbindungsaufbau funktioniert, bleibt noch die Interaktion mit dem anderen Server, sprich: die HTTP-Syntax. Die Spezifikation wird dir nicht viel bringen, aber Google etc. sind da gute Lehrmeister, besonders viele verschiedene Schlüsselwörter (Referrer, Host, ...) braucht man auch nicht zu kennen. Krempel abschicken, Antwort kommt rein, und wenn's geklappt hat sieht die so aus:
    Code (Text):
    1. HTTP/1.x 304 Not Modified
    2. Date: Mon, 18 Aug 2008 12:36:35 GMT
    3. Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch11
    4. Connection: Keep-Alive
    5. Keep-Alive: timeout=15, max=98
    6. Etag: "2b7be-50c-224b3fc0"
    7.  
    8. [hier steht dann der eigentliche dateiinhalt, also <html><head>blabla]
    Per strpos kannst du jetzt rausfinden, wo das Dokument anfängt (strpos($String, "\r\n\r\n")), und ab der Position dann mit substr die Datei extrahieren.
    Ist etwas komplizierter als file_get_contents, aber funktioniert garantiert ;)
    Die nächste Hürde wird jetzt sein, dass manche Server auf solche Queries gar nicht reagieren, da sie - tadaa - Leute vermuten, die automatisiert ihre Seiten auslesen. Auch dafür gibt's Abhilfe, man kann die Header natürlich auch fälschen. Dafür gibt's hilfreiche Addons, z.B. Live HTTP Headers. Statt deines primitiven "GET HTTP/1.1\r\nHOST: bla.com\r\n\r\n" schickst du einfach einen riiiiesigen Block von nutzlosen Daten ab, die dich aussehen lassen wie ein Firefox:
    Code (Text):
    1. GET /img/ratings_images.gif HTTP/1.1
    2. Host: addons.mozilla.org
    3. User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
    4. Accept: image/png,image/*;q=0.8,*/*;q=0.5
    5. Accept-Language: en-gb,en;q=0.7,de-de;q=0.3
    6. Accept-Encoding: gzip,deflate
    7. Accept-Charset: ISO-8859-15,utf-8;q=0.7,*;q=0.7
    8. Keep-Alive: 300
    9. Connection: keep-alive
    10. Referer: https://addons.mozilla.org/css/style.min.css?17401
    ... und wenn der Server sich jetzt noch zur Wehr setzt, dann kann man auch mit nem normalen Browser nicht auf die Seite zugreifen. ;)
     
    #6      
  7. hoplite

    hoplite Nicht mehr ganz neu hier

    Dabei seit:
    03.07.2008
    Beiträge:
    57
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    hallo blackout,
    ich danke dir sehr für deine ausführliche antwort. das tutorial werd ich mir durchlesen. die sache ist, ich möchte mir im moment mit der sache gar nicht mehr so viel arbeot machen, vor allem weil das script, welches ich benutze eigentlich schon funktioniert. der inhalt samt links wird auf meiner seite ordnungsgemäß angezeigt, nur wenn man einen der links anklickt, die auf einen unterbereich der fremden seite verweisen (sollten) gibt es den erwähnten 404 error. weil eben die links von dem script so interpretiert werden, als wären es links auf einen unterbereich auf meiner seite, wird der link zusammengesetzt aus meiner domain (www.my_domain.com anstatt www.andere_domain.com) und dem unterpfad von der fremden seite (dies soll auch so sein) /pfad/der/anderen/seite. was ich wissen möche ist also, ein beispiel käme mir sehr recht, wie kann ich das script modifizieren, das vor den pfad die andere domain gestellt wird, anstatt meiner eigenen.

    lg, hoplite
     
    #7      
  8. minisalami

    minisalami Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    23
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    und was ist wenn du dir
    Code (Text):
    1.  
    2. echo $host . $string;
    3.  
    ausgeben läßt?
    gruß minisalami
     
    #8      
  9. hoplite

    hoplite Nicht mehr ganz neu hier

    Dabei seit:
    03.07.2008
    Beiträge:
    57
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    hi minisalami,

    Code (Text):
    1. echo $host . $string;
    zeigt zwar die host-domain an, das link-verhalten bleibt aber dasselbe.
     
    #9      
  10. minisalami

    minisalami Noch nicht viel geschrieben

    Dabei seit:
    29.05.2008
    Beiträge:
    23
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    na dann sind die Pfade auf der Seite die du ausliest relativ, dann musst du dir die Links neu zusammenbauen!
    Um einen String zu zerlegen, gibt es ja einige Funktionen in php
    Gruß minisalami
     
    #10      
  11. hoplite

    hoplite Nicht mehr ganz neu hier

    Dabei seit:
    03.07.2008
    Beiträge:
    57
    Geschlecht:
    männlich
    html von anderer seite auslesen - ausgabestring
    AW: html von anderer seite auslesen - ausgabestring

    hm, durchaus. hat jemand mal lust, ein beispiel zu posten, wie man das in den code oben einbauen kann?

    danke und gruß, hoplite
     
    #11      
x
×
×
teststefan