Heim  >  Artikel  >  Backend-Entwicklung  >  Wie man PHP dazu bringt, benutzerdefinierte Daten über den Header zu senden

Wie man PHP dazu bringt, benutzerdefinierte Daten über den Header zu senden

jacklove
jackloveOriginal
2018-06-09 10:16:531746Durchsuche

In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Daten über Header senden. Wenn Sie eine Anfrage senden, können Sie nicht nur $_GET/$_POST zum Senden von Daten verwenden, sondern auch die Daten in den Header einfügen und übertragen.

Header senden:

Wir haben drei Parameter definiert: Token, Sprache, Region, fügen Sie sie in den Header ein und senden Sie in der Vergangenheit

<?php$url = &#39;http://www.example.com&#39;;$header = array(&#39;token:JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU&#39;,&#39;language:zh&#39;,&#39;region:GZ&#39;);$content = array(        &#39;name&#39; => &#39;fdipzone&#39;);$response = tocurl($url, $header, $content);$data = json_decode($response, true);echo &#39;POST data:&#39;;echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($data[&#39;post&#39;]);echo &#39;
';echo 'Header data:';echo '
&#39;;
print_r($data[&#39;header&#39;]);echo &#39;
';/** * 发送数据 * @param String $url 请求的地址 * @param Array $header 自定义的header数据 * @param Array $content POST的数据 * @return String */function tocurl($url, $header, $content){ $ch = curl_init(); if(substr($url,0,5)=='https'){ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在 } curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($content)); $response = curl_exec($ch); if($error=curl_error($ch)){ die($error); } curl_close($ch); return $response; }?>

den empfangenen Header

Wir können Header-Daten in $_SERVER abrufen Daten werden als Präfix HTTP_ verwendet, damit die Daten mit dem Präfix HTTP_ ausgelesen werden können.

<?php$post_data = $_POST;$header = get_all_headers();$ret = array();$ret[&#39;post&#39;] = $post_data;$ret[&#39;header&#39;] = $header;
header(&#39;content-type:application/json;charset=utf8&#39;);echo json_encode($ret, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);/**
 * 获取自定义的header数据
 */function get_all_headers(){
    // 忽略获取的header数据
    $ignore = array(&#39;host&#39;,&#39;accept&#39;,&#39;content-length&#39;,&#39;content-type&#39;);    $headers = array();    foreach($_SERVER as $key=>$value){        if(substr($key, 0, 5)===&#39;HTTP_&#39;){            $key = substr($key, 5);            $key = str_replace(&#39;_&#39;, &#39; &#39;, $key);            $key = str_replace(&#39; &#39;, &#39;-&#39;, $key);            $key = strtolower($key);            if(!in_array($key, $ignore)){                $headers[$key] = $value;
            }
        }
    }    return $headers;
}?>

Ausgabe:

POST data:Array(
    [name] => fdipzone
)
Header data:Array(
    [token] => JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU
    [language] => zh
    [region] => GZ
)

In diesem Artikel wird erläutert, wie PHP benutzerdefinierte Daten über den Header senden kann. Bitte achten Sie auf weitere Informationen Verwandte Inhalte PHP chinesische Website.

Verwandte Empfehlungen:

So verwenden Sie inet_aton und inet_ntoa, um IP-Adressdaten über MySQL zu verarbeiten

PHP-JSON-Daten mithilfe von gzip Verwandter Inhalt der komprimierten Ausgabe

So verwenden Sie http_build_query, parse_url, parse_str zum Erstellen und Analysieren von URLs über PHP

Das obige ist der detaillierte Inhalt vonWie man PHP dazu bringt, benutzerdefinierte Daten über den Header zu senden. 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