


Explication détaillée de la fonction curl de session de transfert PHP
Cet article présente principalement des informations pertinentes sur l'explication détaillée de la fonction curl de session de transmission PHP. J'espère que cet article pourra aider tout le monde. Les amis dans le besoin peuvent se référer à
Fonction curl de session de transmission PHP détaillée. explication des exemples
Avant-propos :
Assumer la lourde responsabilité de la personne en charge du côté PC du projet de l'entreprise, la responsabilité est lourde ; de l'analyse de la demande, l'élaboration d'organigrammes et la création de tableaux, le codage, les tests, la correction des bugs et la maintenance en ligne sont tous réalisés par moi-même (bien sûr, j'ai une équipe front-end avec de bonnes compétences, merci pour l'aide de mon superviseur) Même si je suis fatigué et que je dois faire beaucoup d'heures supplémentaires, je pense que tout va bien pour l'entreprise.
Pas grand chose à dire, car les projets ont souvent besoin d'appeler l'interface Java puisque l'interface de requête est impliquée, il existe la méthode de requête http. Les plus courantes en PHP sont GET/POST. , il existe d'autres méthodes telles que put, etc. GET/POST/PUT/DELETE sont souvent utilisés en Java. Bien sûr, l'interface de requête doit utiliser des fonctions liées à curl. Elles sont toutes déboguées en lisant la documentation. lisez la documentation. Voici les fonctions associées que j'ai encapsulées (approximativement résumées, ajustées) :
Exemple de code :
private $serverhost = "https://demo.php.cn"; //测试 /** * 请求接口封装 get/post/put/delete等 * access public * @param string $url 接口地址 * @param string $params 参数 * @param string $type 类型 get/post/put/delete * @return bool/array */ public function getcurldata($url,$params,$type="get"){ $url = $this->serverhost.$url; $response = array(); if($type == 'get'){ //get请求 //请求头可以加其他设置 $headers = array( 'Content-type: application/json;charset=UTF-8', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); }elseif ($type == 'post'){ //post请求 $headers = array( 'Content-type: application/json;charset=UTF-8', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_POST, true); //注意这几行 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); //注意这几行 //curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); }elseif ($type == 'put'){ //put请求 $headers = array( 'Content-type: application/json;charset=UTF-8', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); curl_setopt($ch, CURLOPT_PUT, true); //注意这几行 curl_setopt($ch, CURLOPT_POSTFIELDS, $params); //curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); } return $response; } //如何调用上面代码 //get方式 /** * 查询我创建过的班级 * @param string $url 接口地址 * @param string $params 参数 * @param string $type 类型 get * @return array */ public function mycreateclass($userid){ $url = "/xxx/xxxx/xxxx/".$userid; //请求地址拼接 $response = $this->getcurldata($url,array(),"get"); $createdclass = json_decode($response, true); //返回json格式数据 return $createdclass; } /** post方式请求 * 用户登录判断 * access public * @param string $username 用户名 * @param string $password 密码 * @return bool */ public function getlogin($username,$password) { //要post的数据 $params = array( "username" => $username, "password" => $password ); $params = json_encode($params, 64|256); $uri = "/xxx/xxx/login"; $response = $this->getcurldata($uri,$params,"post"); $result = json_decode($response, true); return $result ; } /*身份转换--put 请求 */ public function changeuserole($token){ //要put的数据 $params = array(); $params = json_encode($params, 64|256); $uri = "/xxx/xxx/xxx/".$token."/"; $response = $this->getcurldata($uri,$params,"put"); $result = json_decode($response, true); //dump($result);die; return $result; } //还有一个delete方式 大家自己参考文档调试下吧 上面3个请求方式都是单次请求(即请求一次)*************** PHP自带函数curl_multi_get_contents函数(thinkphp自带此函数,可以微调下): /** * 批量发起请求 已调通 * curl multi POST数据 * */ public function curl_multi_get_contents($url=array(), $param = array(), $timeout=1000){ $userAgent = 'Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1)'; $headers = array( 'Content-type: application/json;charset=UTF-8', ); $curl_array=array(); $mh = curl_multi_init(); foreach($url as $uk=>$uv){ $curl_array[$uk] = curl_init(); } unset($uk,$uv); foreach($url as $uk=>$uv) { $options = array( CURLOPT_URL => $uv, CURLOPT_TIMEOUT => $timeout, CURLOPT_RETURNTRANSFER => true, CURLOPT_DNS_CACHE_TIMEOUT => 86400, CURLOPT_DNS_USE_GLOBAL_CACHE => true, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_HEADER => false, CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)', CURLOPT_HTTPHEADER => $headers, ); if (isset($param[$uk])) { foreach ($param[$uk] as $_k => $_v) { //$options[$_k] = $_v; $optionsparam[$_k] = $_v; $options[CURLOPT_POSTFIELDS] = json_encode($optionsparam, 64|256); } } curl_setopt_array($curl_array[$uk], $options); curl_multi_add_handle($mh, $curl_array[$uk]); unset($options); } unset($uk,$uv); $running = NULL; do { curl_multi_exec($mh,$running); } while($running > 0); $res = array(); foreach($url as $uk=>$uv){ $res[$uk] = curl_multi_getcontent($curl_array[$uk]); } unset($uk,$uv); foreach($url as $uk=>$uv){ curl_multi_remove_handle($mh, $curl_array[$uk]); } unset($url,$curl_array,$uk,$uv); curl_multi_close($mh); return $res; } //如何调用--批量发起请求 //批量请求加入班级 public function batchjoinclass($token,$batchjoinclass){ $urlarr = $param = $returndata = array(); $param = $batchjoinclass; //二维数组 格式如下 /* $param[1]['name'] = '班级新1'; $param[1]['iamge'] = 'xxx11.png'; $param[1]['iamgeType'] = 'CUSTOM'; $param[2]['name'] = '班级新2'; $param[2]['iamge'] = 'xxx.png'; $param[2]['iamgeType'] = 'CUSTOM'; */ //获取请求url foreach($batchjoinclass as $key=>$val){ $urlarr[$key] = $this->serverhost."/xxx/xxxx/xxxx/".$token; } $res = $this->curl_multi_get_contents($urlarr,$param); //格式化返回数据 foreach($res as $key=>$val){ $returndata[$key] = json_decode($val,true); } return $returndata; }
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c
