Maison  >  Article  >  développement back-end  >  PHP envoie une méthode de données personnalisée via l'en-tête

PHP envoie une méthode de données personnalisée via l'en-tête

韦小宝
韦小宝original
2018-01-19 10:37:512504parcourir

L'éditeur ci-dessous partagera avec vous une méthode d'envoi de données personnalisées via des en-têtes en PHP. Il a une bonne référence et une bonne valeur pour apprendre PHP. J'espère qu'il sera utile à tout le monde. Si vous êtes intéressé par PHP, veuillez suivre l'éditeur et jeter un œil

Cet article explique comment envoyer des données personnalisées via des en-têtes. Lors de l'envoi d'une requête, en plus d'utiliser $_GET/$_POST pour envoyer des données, vous pouvez également mettre les données dans l'en-tête et les transmettre.

En-tête d'envoi :

Nous avons défini trois paramètres, jeton, langue, région, mettez en-tête et envoyez-le

<?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; } ?>

recevoir l'en-tête

nous pouvons Obtenez les données d'en-tête dans $_SERVER. Les données personnalisées utilisent HTTP_ comme préfixe, afin que les données avec le préfixe HTTP_ puissent être lues.

<?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;
}
?>

Sortie :

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

La méthode php ci-dessus pour envoyer des données personnalisées via l'en-tête est tout le contenu partagé par l'éditeur, j'espère qu'il pourra donner. à tous une référence ! !

Recommandations associées :

Implémentation PHP pouvant ajouter des filigranes et générer des outils de traitement de vignettes

Implémentation PHP détaillée explication de l'instance de nœud d'entrée de l'anneau dans la liste chaînée

Explication détaillée des principes de sérialisation et de désérialisation PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn