phpbar.de logo

Mailinglisten-Archive

[php] fsockopen,fputs

[php] fsockopen,fputs

Joerg Behrens php_(at)_phpcenter.de
Sun, 11 Nov 2001 18:02:37 +0100


----- Original Message -----
From: "Thomas Michel" <thomas.michel_(at)_datacomm.ch>
To: "Php_(at)_Phpcenter. De" <php_(at)_phpcenter.de>
Sent: Sunday, November 11, 2001 4:49 PM
Subject: [php] fsockopen,fputs


> Hallo zusammen
>
> Ich möchte die verbindung per fsockopen zu einer anderen webseite
herstellen
> den html code als variabel speichern. mir ist es klar das dies auch mit
> fopen gehen kann  jedoch kann ich ja dann keine browser infos schicken
oder
> nicht? Was muss ich verwenden (fputs ist klar) das ich der inhalt der
seite
> in einer var bekomme?
>

Mit fsockopen lassen sich viel feinere Sachen machen als mit fopen , senden
von Postrequests, einloggen in per basic auth geschuetzte Verz. und vieles
mehr. Ein simpler GET Request koennte so aussehen

function get_html($url){
  $url_parts =  parse_url($url);

  if(empty($url_parts[port])) {
    $url_parts[port] = 80; // setting default port !
  }

  $fp = _(at)_fsockopen($url_parts[host] , $url_parts[port], &$errno, &$errstr,
5);
  if(!is_resource($fp)){
    return "Fehler: $errstr ($errno)<br />\n";
  }
  else{
    fputs ($fp, "GET / HTTP/1.1\n");
    fputs ($fp, "HOST: $url_parts[host]:$url_parts[port]\n");
    fputs ($fp, "CONNECTION: close\r\n\r\n");
    // reading incoming data
    while (!feof($fp)) {
        $content .=  fgets($fp,4096);
    }
    preg_match_all("=<html>(.*)</html>=siUm", $content, $b);
    fclose($fp);
    return "<html>\n".$b[1][0]."</html>\n";
}

Unschoen ist hier nur das man die HTML Tags selber dazufuegen  muess und das
ein vorhandene
<!DOCTYPE ..> unter den Tisch faellt.

Aber ansich muesste man nur die Antwortheader ueberlesen und dann ab der
ersten Leerzeile bis zum Ende lesen.

Gruss
Joerg Behrens





php::bar PHP Wiki   -   Listenarchive