В 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);
}