


Attention : curl_setopt() [function.curl-setopt] : CURLO...comment résoudre l'erreur lors de l'utilisation de la fonction php curl
Si vous exécutez CURLOPT_FOLLOWLOCATION en PHP et que vous obtenez le message d'erreur d'invite php :
Avertissement : curl_setopt() [function.curl-setopt] : CURLOPT_FOLLOWLOCATION ne peut pas être activé en mode sécurisé ou si un open_basedir est défini…
L'erreur mentionne deux éléments clés, safe_mode et open_basedir. Si vous êtes un hôte virtuel et n'avez pas l'autorisation de définir APPCHE, vous ne pouvez pas résoudre le problème en modifiant la configuration du serveur. configuration du serveur safe_mode Tous sont désactivés, puis il existe certaines restrictions sur les utilisateurs pour une certaine sécurité. En définissant open_basedir pour limiter le dossier d'exécution PHP de l'utilisateur de l'hôte virtuel, donc lorsque vous utilisez CURLOPT_FOLLOWLOCATION (fonction php curl, données d'analyse approfondie), une fois. il y a une redirection 301 Le message d'erreur mentionné dans l'article apparaîtra après un certain temps
Après avoir vérifié les informations pertinentes, j'ai rapidement trouvé la solution, http://www.php.cn/php-weizijiaocheng-. 362563.html, ces méthodes sont toutes disponibles dans l'aide officielle de php
La méthode spécifique consiste à utiliser curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) dans l'instruction curl et à personnaliser une fonction dans la fonction php,
code Comme suit :
function curl_redir_exec($ch,$debug="") { static $curl_loops = 0; static $curl_max_loops = 20; if ($curl_loops++ >= $curl_max_loops) { $curl_loops = 0; return FALSE; } curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); $debbbb = $data; list($header, $data) = explode("\n\n", $data, 2); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_code == 301 || $http_code == 302) { $matches = array(); preg_match('/Location:(.*?)\n/', $header, $matches); $url = @parse_url(trim(array_pop($matches))); //print_r($url); if (!$url) { //couldn't process the url to redirect to $curl_loops = 0; return $data; } $last_url = parse_url(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)); /* if (!$url['scheme']) $url['scheme'] = $last_url['scheme']; if (!$url['host']) $url['host'] = $last_url['host']; if (!$url['path']) $url['path'] = $last_url['path'];*/ $new_url = $url['scheme'] . '://' . $url['host'] . $url['path'] . ($url['query']?'?'.$url['query']:''); curl_setopt($ch, CURLOPT_URL, $new_url); // debug('Redirecting to', $new_url); return curl_redir_exec($ch); } else { $curl_loops=0; return $debbbb; } }
Une fois la fonction définie, remplacez l'instruction curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true) par curl_redir_exec($ch)
Après ceci, je veux votre fichier PHP Il ne devrait y avoir aucune erreur. A propos de ce code, vous pouvez le trouver dans le lien PHP officiel
Le code PHP officiel est le suivant
/safe 模式不能curl的函数 function curl_redir_exec($ch) { static $curl_loops = 0; static $curl_max_loops = 20; if ($curl_loops++ >= $curl_max_loops) { $curl_loops = 0; return FALSE; } curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); list($header, $data) = explode("\n\n", $data, 2); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_code == 301 || $http_code == 302) { $matches = array(); preg_match('/Location:(.*?)\n/', $header, $matches); $url = @parse_url(trim(array_pop($matches))); if (!$url) { //couldn't process the url to redirect to $curl_loops = 0; return $data; } $last_url = parse_url(curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)); if (!$url['scheme']) $url['scheme'] = $last_url['scheme']; if (!$url['host']) $url['host'] = $last_url['host']; if (!$url['path']) $url['path'] = $last_url['path']; $new_url = $url['scheme'] . '://' . $url['host'] . $url['path'] . ($url['query']?'?'.$url['query']:''); curl_setopt($ch, CURLOPT_URL, $new_url); debug('Redirecting to', $new_url); return curl_redir_exec($ch); } else { $curl_loops=0; return $data; } } //end
[. Articles connexes recommandés]
1. Introduction au concept et exemples d'utilisation de la fonction php curl_setopt
3.La fonction php curl_setopt simule un exemple de connexion utilisateur
4.Explication détaillée de l'exemple d'utilisation de Fonction PHP curl_exec
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)

Sujets chauds

Windows Sandbox se termine-t-il avec Windows Sandbox impossible à démarrer, erreur 0x80070005, message Accès refusé ? Certains utilisateurs ont signalé que Windows Sandbox ne pouvait pas être ouvert. Si vous rencontrez également cette erreur, vous pouvez suivre ce guide pour la corriger. Windows Sandbox ne parvient pas à démarrer - Accès refusé Si Windows Sandbox se termine avec Windows Sandbox Impossible de démarrer, erreur 0x80070005, message Accès refusé, assurez-vous que vous êtes connecté en tant qu'administrateur. Ce type d'erreur est généralement dû à des autorisations insuffisantes. Essayez donc de vous connecter en tant qu'administrateur et voyez si cela résout le problème. Si le problème persiste, vous pouvez essayer les solutions suivantes : Exécutez le Wi-Fi en tant qu'administrateur

Si vous rencontrez un message d'erreur lors de l'utilisation de votre imprimante, tel que l'opération n'a pas pu être terminée (erreur 0x00000771), cela peut être dû au fait que l'imprimante a été déconnectée. Dans ce cas, vous pouvez résoudre le problème grâce aux méthodes suivantes. Dans cet article, nous verrons comment résoudre ce problème sur un PC Windows 11/10. Le message d'erreur complet indique : L'opération n'a pas pu être terminée (erreur 0x0000771). L'imprimante spécifiée a été supprimée. Correction de l'erreur d'imprimante 0x00000771 sur un PC Windows Pour corriger l'erreur d'imprimante, l'opération n'a pas pu être terminée (erreur 0x0000771), l'imprimante spécifiée a été supprimée sur un PC Windows 11/10, suivez cette solution : Redémarrez le spool d'impression

Décryptage du code d'état HTTP 460 : pourquoi cette erreur se produit-elle ? Introduction : Lors de l'utilisation quotidienne du réseau, nous rencontrons souvent diverses invites d'erreur, notamment des codes d'état HTTP. Ces codes d'état sont un mécanisme défini par le protocole HTTP pour indiquer le traitement d'une requête. Parmi ces codes d’état, il existe un code d’erreur relativement rare, à savoir le 460. Cet article examinera ce code d'erreur et expliquera pourquoi cette erreur se produit. Définition du code d'état HTTP 460 : Tout d'abord, nous devons comprendre les bases du code d'état HTTP

Table des matières Solution 1 Solution 21. Supprimez les fichiers temporaires de Windows Update 2. Réparez les fichiers système endommagés 3. Afficher et modifier les entrées de registre 4. Éteignez la carte réseau IPv6 5. Exécutez l'outil WindowsUpdateTroubleshooter pour réparer 6. Éteignez le pare-feu et autres logiciels antivirus associés. 7. Fermez le service WidowsUpdate. Solution 3 Solution 4 Une erreur « 0x8024401c » se produit lors de la mise à jour de Windows sur les ordinateurs Huawei Symptôme Problème Cause Solution Toujours pas résolu ? Récemment, le serveur Web a dû être mis à jour en raison de vulnérabilités du système. Après la connexion au serveur, la mise à jour affiche le code d'erreur 0x8024401c.

AutoCAD est l'un des logiciels de conception de dessins les plus couramment utilisés, mais lorsque nous souhaitons l'utiliser sur Win11, nous pouvons rencontrer une erreur lors de l'installation d'AutoCAD sur Win11. À ce stade, nous pouvons essayer de modifier le registre pour le résoudre. Une erreur s'est produite lors de l'installation d'autocad dans win11 : Première étape, appuyez sur "win logo + r" sur le clavier pour ouvrir l'exécution. Dans la deuxième étape, saisissez « regedit » et appuyez sur Entrée pour ouvrir le registre. 3. Collez « Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System » dans le chemin ci-dessus. 4. Après avoir entré, double-cliquez

Pour mettre à jour la version curl sous Linux, vous pouvez suivre les étapes ci-dessous : Vérifiez la version actuelle de curl : Tout d'abord, vous devez déterminer la version de curl installée dans le système actuel. Ouvrez un terminal et exécutez la commande suivante : curl --version Cette commande affichera les informations sur la version actuelle de curl. Confirmer la version curl disponible : Avant de mettre à jour curl, vous devez confirmer la dernière version disponible. Vous pouvez visiter le site officiel de curl (curl.haxx.se) ou des sources de logiciels associées pour trouver la dernière version de curl. Téléchargez le code source de curl : à l'aide de curl ou d'un navigateur, téléchargez le fichier de code source pour la version curl de votre choix (généralement .tar.gz ou .tar.bz2).

Conseils pratiques pour résoudre rapidement les erreurs Tomcat404 Tomcat est un serveur d'applications JavaWeb couramment utilisé et est souvent utilisé lors du développement et du déploiement d'applications JavaWeb. Cependant, nous pouvons parfois rencontrer une erreur 404 de la part de Tomcat, ce qui signifie que Tomcat ne trouve pas la ressource demandée. Cette erreur peut être causée par plusieurs facteurs, mais dans cet article, nous aborderons quelques solutions et conseils courants pour vous aider à résoudre rapidement les erreurs Tomcat 404. Vérifier le chemin de l'URL

Si vous rencontrez le code d'erreur 0x80070003 lors de l'utilisation d'Hyper-V pour créer ou démarrer une machine virtuelle, cela peut être dû à des problèmes d'autorisation, à une corruption de fichier ou à des erreurs de configuration. Les solutions incluent la vérification des autorisations des fichiers, la réparation des fichiers endommagés, la garantie d'une configuration correcte, etc. Ce problème peut être résolu en excluant les différentes possibilités une à une. L'intégralité du message d'erreur ressemble à ceci : Le serveur a rencontré une erreur lors de la création de [nom de la machine virtuelle]. Impossible de créer une nouvelle machine virtuelle. Impossible d'accéder au magasin de configuration : le système ne trouve pas le chemin spécifié. (0x80070003). Certaines causes possibles de cette erreur incluent : Le fichier de la machine virtuelle est corrompu. Cela peut se produire en raison d’attaques de logiciels malveillants, de virus ou de logiciels publicitaires. Même si la probabilité que cela se produise soit faible, vous ne pouvez pas complètement
