Mailinglisten-Archive |
----- 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