Maison >développement back-end >tutoriel php >PHP envoie des données personnalisées via le partage de code d'en-tête
Cette fois, je vais partager avec vous le code pour que PHP envoie des données personnalisées via l'en-tête. Quelles sont les précautions pour que PHP envoie des données personnalisées via l'en-tête. Voici un cas pratique, prenons. un regard.
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 = 'http://www.example.com'; $header = array('token:JxRaZezavm3HXM3d9pWnYiqqQC1SJbsU','language:zh','region:GZ'); $content = array( 'name' => 'fdipzone' ); $response = tocurl($url, $header, $content); $data = json_decode($response, true); echo 'POST data:'; echo '<pre class="brush:php;toolbar:false">'; print_r($data['post']); echo ''; echo 'Header data:'; echo '
'; print_r($data['header']); echo ''; /** * 发送数据 * @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['post'] = $post_data; $ret['header'] = $header; header('content-type:application/json;charset=utf8'); echo json_encode($ret, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); /** * 获取自定义的header数据 */ function get_all_headers(){ // 忽略获取的header数据 $ignore = array('host','accept','content-length','content-type'); $headers = array(); foreach($_SERVER as $key=>$value){ if(substr($key, 0, 5)==='HTTP_'){ $key = substr($key, 5); $key = str_replace('_', ' ', $key); $key = str_replace(' ', '-', $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 )
Je pense que vous maîtrisez la méthode après avoir lu le cas présenté dans cet article. Pour des informations plus intéressantes, veuillez prêter attention à. d'autres articles connexes sur le site php chinois !
Lecture recommandée :
Pourquoi y a-t-il PHP Class SoapClient introuvable Problèmes et solutions
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!