PHP CURL & HTTPS
Cet article vise à aborder la problématique de l'implémentation de la fonction get_web_page pour les requêtes HTTPS en PHP utilisant CURL.
La fonction fournie gère parfaitement les requêtes HTTP. Cependant, lorsqu’il s’agit de connexions HTTPS, il rencontre des difficultés. Pour résoudre ce problème, nous allons incorporer une modification essentielle dans la fonction.
En ajoutant la ligne suivante au tableau d'options :
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)
nous demandons à CURL de désactiver la vérification du certificat SSL. C'est une solution rapide, mais elle augmente également votre vulnérabilité aux attaques de l'homme du milieu.
Alternativement, vous pouvez inclure cette modification directement dans la fonction :
/** * Get a web file (HTML, XHTML, XML, image, etc.) from a URL. Return an * array containing the HTTP server response header fields and content. */ function get_web_page( $url ) { $options = array( CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => false, // don't return headers CURLOPT_FOLLOWLOCATION => true, // follow redirects CURLOPT_ENCODING => "", // handle all encodings CURLOPT_USERAGENT => "spider", // who am i CURLOPT_AUTOREFERER => true, // set referer on redirect CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect CURLOPT_TIMEOUT => 120, // timeout on response CURLOPT_MAXREDIRS => 10, // stop after 10 redirects CURLOPT_SSL_VERIFYPEER => false // Disabled SSL Cert checks ); $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $content = curl_exec( $ch ); $err = curl_errno( $ch ); $errmsg = curl_error( $ch ); $header = curl_getinfo( $ch ); curl_close( $ch ); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['content'] = $content; return $header; }
Avec Avec cette modification, la fonction get_web_page gérera efficacement les requêtes HTTP et HTTPS.
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!