В php есть функция header, она отправляет http заголовок, отправить данные post запросом с ее помощью не удастся.
POST запрос можно отправить с помощью функции fsockopen:
$fp = fsockopen("localhost", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$var1 = 'Привет';
$var2 = 'мир';
$data = urlencode('var1') . '=' . urlencode($var1) . '&' . urlencode('var2') . '=' . urlencode($var2) . "\r\n";
$out = "POST /socket/test.php HTTP/1.0\r\n";
$out .= "Host: localhost\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Content-length: ".strlen($data)."\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= $data."\r\n\r\n";
$html = '';
fwrite($fp, $out);
while (!feof($fp)) {
$html .= fgets($fp, 128);
}
fclose($fp);
$pos = strpos($html, "\r\n\r\n");
echo $html = substr($html, $pos+4);
}
Эта часть кода убирает часть ответа веб сервера, не относящуюся к содержанию страницы:
$pos = strpos($html, "\r\n\r\n"); echo $html = substr($html, $pos+4);
Отправка GET запроса:
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}