Lorsque vous essayez de récupérer le contenu d'une page à l'aide de cURL, vous pouvez rencontrer des problèmes de redirection ou des erreurs de « page déplacée », en particulier si le La chaîne de requête contient des caractères spéciaux.
Pour résoudre ce problème, vous devez vous assurer que la chaîne de requête codée est traitée correctement. Voici un extrait de code amélioré qui résout ce problème :
<code class="php">/** * Function to retrieve a web page using cURL. */ function get_web_page(string $url): array { $user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'; $options = [ CURLOPT_CUSTOMREQUEST => "GET", // Set request type as GET CURLOPT_POST => false, // Set to GET CURLOPT_USERAGENT => $user_agent, // Set user agent CURLOPT_COOKIEFILE => "cookie.txt", // Set cookie file CURLOPT_COOKIEJAR => "cookie.txt", // Set cookie jar CURLOPT_RETURNTRANSFER => true, // Return web page CURLOPT_HEADER => false, // Don't return headers CURLOPT_FOLLOWLOCATION => true, // Follow redirects CURLOPT_ENCODING => "", // Handle all encodings 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 ]; $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; } // Example of using the function to get a web page: $result = get_web_page('https://www.example.com/page'); if ($result['errno'] != 0) { // Handle error: bad url, timeout, redirect loop } if ($result['http_code'] != 200) { // Handle error: no page, no permissions, no service } $page = $result['content'];</code>
En incluant ces options supplémentaires, telles que la définition du type de requête sur GET, la fourniture d'un agent utilisateur et la gestion de tous les encodages, vous devriez pouvoir réussir récupérer le contenu de la page web souhaitée.
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!