Heim >Backend-Entwicklung >PHP-Problem >So legen Sie Antwort-Header-Informationen in PHP fest

So legen Sie Antwort-Header-Informationen in PHP fest

王林
王林Original
2021-09-18 16:35:284717Durchsuche

Die Methode für PHP zum Festlegen von Antwort-Header-Informationen besteht darin, die Funktion fsockopen() zum Festlegen zu verwenden, zum Beispiel [

So legen Sie Antwort-Header-Informationen in PHP fest

Die Betriebsumgebung dieses Artikels: Windows10-System, PHP7, Thinkpad T480-Computer.

In PHP, wenn nötig Legen Sie die Antwort-Header-Informationen des Anforderungsservers fest. Wir können fsockopen und die Curl-Komponente verwenden. Einige Freunde denken möglicherweise sofort an die Funktion header (), aber die Funktion header () kann nur zum Festlegen der Header-Informationen der Client-Antwort verwendet werden . Die Header-Informationen des Servers können nicht festgelegt werden.

1. Verwendung der Header-Funktion

    header('WWW-Authenticate: Negotiate');
    header('User-Agent:Mozilla/5.0);

Mehrere Header müssen direkt geschrieben werden und können nicht miteinander verbunden werden

2. Verwendung der fsockopen-Funktion

1, php

<?php
$fp = fsockopen("test.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET /2.php HTTP/1.1\r\n";
    $out .= "Host: test.com\r\n";
    $out .= "name:longqiqi\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

2, php

print_r(getallheaders());

gibt die Header-Informationen Ihrer eigenen Einstellungsanfrage zurück

3. Verwendung der Curl-Komponente

1, php

<?php
function FormatHeader($url, $myIp = null,$xml = null)
{
 // 解悉url
 $temp = parse_url($url);
 $query = isset($temp[&#39;query&#39;]) ? $temp[&#39;query&#39;] : &#39;&#39;;
 $path = isset($temp[&#39;path&#39;]) ? $temp[&#39;path&#39;] : &#39;/&#39;;
 
 $header = array (
 "POST {$path}?{$query} HTTP/1.1",
 "Host: {$temp[&#39;host&#39;]}",
 "Content-Type: text/xml; charset=utf-8",
 &#39;Accept: */*&#39;,
 "Referer: http://{$temp[&#39;host&#39;]}/",
 &#39;User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)&#39;,
 "X-Forwarded-For: {$myIp}",
 "Content-length: 380",
 "Connection: Close"
 );
 
 return $header;
}
 
$interface = &#39;http://test.com/2.php&#39;;
$header = FormatHeader($interface,&#39;10.1.11.1&#39;);
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $interface);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);  //设置头信息的地方
curl_setopt($ch, CURLOPT_HEADER, 0);    //不取得返回头信息
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
 
var_dump($result);
?>

2, php

print_r(getallheaders());

wird Geben Sie die Header-Informationen Ihrer eigenen Einstellungsanfrage zurück


Empfohlenes Lernen:

php-Schulung

Das obige ist der detaillierte Inhalt vonSo legen Sie Antwort-Header-Informationen in PHP fest. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn