phpbar.de logo

Mailinglisten-Archive

[php] Daten auf Server simulieren

[php] Daten auf Server simulieren

Yannik Hampe yannik at cipher-code.de
Mon Mar 23 19:46:55 CET 2009



Christian Peters wrote:
> Hallo Carlo,
> 
> 
> Ich werde mich morgen mal mit fsockopen beschäftigen und auf den Fleisspreis
> hoffen! :)

Vielleicht kann ich dir da was Arbeit abnehmen, denn ich habe schonmal
was gebastelt um http mit fsockopen zu sprechen:

http://pastebin.com/f747dbaeb

Beispiel Verwendung GET:
---
$req =new HTTPRequest('www.example.com');
// Oder per SSL:
// $req =new HTTPRequest('ssl://www.example.com', 443);
$req->addHeader('GET /path/on/server HTTP/1.1');
$req->addHeader('Host: www.example.com');

print_r($req->submit());
---

Beispiel Verwendung von POST:
---
$req =new HTTPRequest('www.example.com');
$req->addHeader('POST /path/on/server HTTP/1.1');
$req->addHeader('Host: www.example.com');
$req->addHeader('Content-Type: application/x-www-form-urlencoded');
$req->setContent(http_build_query($variables));
print_r($req->submit());
---

Wenn du noch Datenkompression verwenden möchtest, kannst du die Daten
mit dieser Funktion extrahieren:
---
function gzuncompress_crc32($data)
{
  $f = tempnam('/tmp', 'gz_fix');
  file_put_contents($f, $data);
  $result =file_get_contents("compress.zlib://$f");
  unlink($f);
  return $result;
}
---
Musst aber natürlich den entsprechenden accept-encoding header setzen.
Oder du kannst die komprimierten Daten auch einfach wieder komprimiert
raushauen ohne sie vorher zu dekomprimieren. Musst nur darauf achten,
dass der Header richtig ist und der Apache nicht versucht die Daten
nochmal zu komprimieren.

> Christian

Yannik

php::bar PHP Wiki   -   Listenarchive