phpbar.de logo

Mailinglisten-Archive

[php] fopen() / HTTP-Browser-Info

[php] fopen() / HTTP-Browser-Info

Andreas Lange php_(at)_phpcenter.de
Fri, 13 Sep 2002 15:31:45 +0200


> Moin, moin,

Hi

> welche Moeglichkeiten habe ich bei der Nutzung von fopen() oder
> fsockopen()
> HTTP-Browser-Informationen (User-Agent) zu senden ?
> Wo ist dies ggf. dokumentiert ?

das habe ich auch schon ziemlich lang probiert rauszukriegen, anscheinend geht
das nicht.

ich hab mir dann mit folgendem Code-Schnipsel beholfen:

function getUrl($url,$user_agent = "Irgendein StandardUserAgentString")
{
	$lines  = array();
	$header = array();
	$temp   = parse_url($url);

	$fp = fsockopen ($temp['host'], 80, $errno, $errstr, 60);
	if ($fp) {
		socket_set_timeout($fp,60,0);
		$host = $temp['host'];
		$uri  = $temp['path'].(strlen($temp['query'])>0?'?'.$temp['query']:'');

		//echo $host.'#'.$uri."\n";

		$in   = "GET $uri HTTP/1.0\r\n";
		$in  .= "Connection: close\r\n";
		$in  .= "Host: $host\r\n";
		$in  .= "Accept: */*\r\n";
		$in  .= "User-Agent: $user_agent\r\n";
		$in  .= "\r\n";

		fputs ($fp, $in);
		$separator = 0;
		while (!feof($fp)) {
			$line = fgets ($fp,65535);
			if (strlen(trim($line)) == 0) {
				$separator = 1;
			} else {
				if ($separator == 1) {
					$lines[] = $line;
				} else {
					$header[] = $line;
				}
			}
		}
		fclose ($fp);

	}
	return array('header'=>$header,'lines'=>$lines);
}

Allerdings ist das Teil noch nicht komplett gedebuggt, es funktioniert, hat
aber manchmal timeouts ...

> Gruss / GW

Gruss

Andreas Lange

--
Haas Media GmbH, Agentur für moderne Medien
Rehbockstraße 25, 30167 Hannover
Tel: (05 11) 270 38 70, Fax: (05 11) 270 38 69
http://www.haas-media.de/
PGP FP: 4204 C703 2D73 58DA  F75B C1F2 E524 6949


php::bar PHP Wiki   -   Listenarchive