webseite cachen (speichern)

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

  • webseite cachen (speichern)

    hallo zusammen!

    ich muss für ein projekt mehrere webseiten quasi "herunterladen" um verschiedene sachen aus dem quelltext auszulesen.
    das klappt wunderbar mit diesem codeschnipsel:

    PHP-Code:
    $lines file("$page");
    $fp fopen ("main_dump.txt","w");
    for(
    $x=0;$x<=count($lines);$x++) {
    fwrite($fp,$lines[$x]);
    }
    fclose($fp); 
    jetzt stellt sicht folgendes problem:
    die seite wo geladen werden soll - leitet auf eine andere weiter!
    ich brauche allerdings die weitergeleitete seite!
    des ganze hat folgenden grund: die seite wo geladen werden soll ist quasi mein profil auf dass ich nur angemeldet zugreifen kann.
    wenn ich in der url xxx.de?passwort=meinpw&login=meinusername eingebe, werde ich auf eine login.php weitergeleitet, welche mich anschließend auf die richtige seite weiterleitet (wo geladen werden soll.)

    wie stelle ich es an die richtige zu bekommen? ist es möglich von meinem server aus die seite erst aufzurufen und quasi weiterleiten zu lassen und anschließend irgendwo zu speichern?

    ich benutze apache auf einem rootserver von mir.

    any ideas?
    grüße
    dee

  • #2
    Tja dann musst du dich mit den socket Fkt von PHP auseinandersetzen
    fsockopen()
    fputs()
    fgets()

    Du baust erst eine Verbindung zum Server auf (fsockopen() ) . Dann forderst du mittels fputs() das gewünschte Dokument an. Die Antwort der Servers holst du mittels fgets() und suchst darin nach dem String Location: irgendeine_url
    Diese irgendeine_url ist die neue URL des Douments, welche du wiederum mittels fputs() vom Server anfragst und mittels fgets() den Inhalt ausliest. Wenn dann kein Location: mehr drin vorkommt, dann haste auch keine Weiterleitung (kannst auch auf Status 200 OK von seitens des Servers prüfen)

    Das braucht ein bisschen Arbeit, aber ist durchaus machbar. Ich habe dies mal zur Prüfung von URL's aus einer DB geschrieben (du kannst das als Hilfe benutzen wenn du willst check_feed()

    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


    • #3
      danke für die schnelle antwort.

      problem dabei: die erste seite initiiert eine session für die folgende seite- nur wenn irgendeine (von mir ned bekannte) variable (sagen wir einfach $sid=123456) gesetzt ist kann ich nach dem einloggen auf mein profil.

      oder ist das mit deiner lösung auch kein problem?

      Kommentar


      • #4
        Diese Session hast du ja im URL. Richtig ? Resp wird dir die Session ID afaik in der Serverantwort bekanntgegeben. Also suchen, ausschneiden und an deine Anfrage anhängen.

        Gruss

        tobi

        p.s. Wenn du FF hast, dann kannste mal nach der Extension LiveHeaders und HeaderMonitor suchen. Dann kannst du genau sehen was der Server auf deine Anfrage (erstmal nch vom Browser aus) zurückgibt.
        Ich glaube mich dunkel daran zu erinnern, dass auch die Session ID in der Serverantwort zu finden sein müsste.
        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

        Lädt...
        X