<?php
 function post_request($url, $data='', $referer=''
)
 {
  // Convert the data array into URL Parameters like a=b&foo=bar etc.
  if(!empty($data
))
  {
   $data = http_build_query($data
);
  }

  // parse the given URL
  $url = parse_url($url
);

  if (
$url['scheme'] != 'http'
)
  {
   die(
'Error: Only HTTP request are supported !'
);
  } 

  // extract host and path:
  $host = $url['host'
];
  $path = $url['path'
];

  // open a socket connection on port 80 - timeout: 30 sec
  if($fp = fsockopen($host, 80, $errno, $errstr, 30
))
  {
   // send the request headers:
   fputs($fp, "POST $path HTTP/1.1\r\n"
);
   fputs($fp, "Host: $host\r\n"
);

   if (
$referer != ''
)
   {
    fputs($fp, "Referer: $referer\r\n"
);
   }

   fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"
);
   fputs($fp, "Content-length: ". strlen($data) ."\r\n"
);
   fputs($fp, "Connection: close\r\n\r\n"
);
   fputs($fp, $data
);

   $result = ''
;

   while(!
feof($fp
))
   {
     // receive the results of the request
     $result .= fgets($fp, 128
);
    }
   }
   else
   {
    return array(
      'status' => 'err'
,
      'error' =>
"$errstr ($errno)" 
    );
   }
   fclose($fp
);

  // split the result header from the content
  $result = explode("\r\n\r\n", $result, 2
);

  $header = ''
;
  if(isset(
$result[0
]))
  {
   $header = $result[0
];
  }
  $content = ''
;
  if(isset(
$result[1
]))
  {
   $content = $result[1
];
  }

 // return as structured array:
  return array(
   'status' => 'ok'
,
   'header' => $header
,
   'content' =>
$content 
  );
 }
 // Submit those variables to the server



 // example #1
 $post_data
= array(
   'test' => 'foobar'
,
   'okay' => 'yes'
,
   'number' =>
2
 );

 // Send a request to example.com
 $result = post_request('http://www.example.com/', $post_data
);

 if (
$result['status'] == 'ok'
){

 // headers
 echo $result['header'
];

 echo
'<hr />'
;

 // print the result of the whole request:
 echo $result['content'
]; 
 }
 else

 {
   echo
'A error occured: ' . $result['error'
];
 }
 ?>