manual
http://pl.php.net/fsockopen<?php
function httpSocketConnection($host, $method, $path, $data)
{
if ($method == "GET")
{
$path.= '?'.$data;
}
$filePointer = fsockopen($host, 80
, $errorNumber, $errorString);
if (!$filePointer)
{
logEvent('debug', 'Failed opening http socket connection: '.$errorString.' ('.$errorNumber.')<br/>n');
return false;
}
$requestHeader = $method." ".$path." HTTP/1.1rn";
$requestHeader.= "Host: ".$host."rn";
$requestHeader.= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0rn";
$requestHeader.= "Content-Type: application/x-www-form-urlencodedrn";
if ($method == "POST")
{
$requestHeader.= "Content-Length: ".strlen($data)."rn"; }
$requestHeader.= "Connection: closernrn";
if ($method == "POST")
{
$requestHeader.= $data;
}
fwrite($filePointer, $requestHeader);
$responseHeader = '';
$responseContent = '';
do
{
$responseHeader.= fread($filePointer, 1
); }
if (!strstr($responseHeader, "Transfer-Encoding: chunked")) {
while (!feof($filePointer)) {
$responseContent.= fgets($filePointer, 128
); }
}
else
{
{
$responseContentChunk = '';
logEventToTextFile('debug', $chunk_length);
$read_length = 0;
while ($read_length < $chunk_length)
{
$responseContentChunk .= fread($filePointer, $chunk_length - $read_length); $read_length = strlen($responseContentChunk); }
$responseContent.= $responseContentChunk;
}
}
logEventToTextFile('debug', $responseContent);
return chop($responseContent); }
?>
użycie:
<?php
$data = 'test[arg1]=tekst1&test[arg2]=tekst2';
httpSocketConnection( 'serwer.pl', 'POST', '/foo/bar.php', $data)
?>