J'accélère des images d'un autre site Web. Je reçois cette erreur:
"Échec de l'ouverture du flux: Échec de la requête HTTP! HTTP / 1.1 400 Mauvaise demande" Erreur lors de la copie "certaines (pas toutes)" images. Voici mon code. P> blockquote>
xxx pré> } p> p>
6 Réponses :
Le seul problème que je peux penser est des espaces étant dans l'URL, probablement dans le nom du fichier. Tous les espaces d'une URL doivent être convertis à leur codage approprié, ce qui est% 20.
Si vous avez un nom de fichier comme celui-ci: P>
" http: // www.somewhere.com/images/img 1.jpg " p>
Vous obtiendrez l'erreur ci-dessus, mais avec ceci: p>
" http://www.somewhere.com/images/img%201.jpg " P> < p> Vous devriez avoir à des problèmes. P>
Il suffit d'utiliser le Il ressemble à ceci: p> pour plus d'informations sur le str_replace () code> pour remplacer les espaces ("") pour leur codage approprié ("% 20") p>
str_replace () code> Découvrez Le manuel PHP . P> P>
Mieux que Str_replace serait d'appeler Urlencode sur la chaîne "IMG 1"
J'ai eu le même problème, mais il a été résolu par
$url = str_replace(" ", "%20", $url);
Merci. Tu as sauvé mon temps
Je pense que Preg_replace gagne plus de meilleur sens car il fonctionnera avec les dernières versions du PHP, car Ereg_replace n'a pas fonctionné pour moi être obsolète
Utilisez la fonction code la chaîne donnée selon »RFC 3986. P>
http://php.net/manual/ru/function.rawurlencode.php < / a> p> RawurlenCode () CODE> P>
Même une ébauche de fuite dans l'URL peut causer un fichier PHP (URL $) pour échouer. Dans les versions récentes de PHP ou Apache, même une ébauche de fuite dans l'URL entraînera l'erreur. L'URL apparaît donc de travailler dans un navigateur car le navigateur sait suffisamment à% 20 l'ébauche de fuite ou l'ignorer. C'était mon erreur quand même. P>
La lampe plus ancienne l'a permis. (c'est-à-dire que le même code a couru ok). Correction facile. P>
Il semble que l'URL ait des espaces ou d'autres caractères spéciaux, vous devez le coder, utiliser la fonction UrlenCode () P>
Est-ce tout votre code pour reproduire le problème? Il y a une attelle frisée non récoltée à la fin. De plus, où envoyez-vous une demande à un serveur Web? Lorsque vous obtenez l'erreur, quelle est la demande?
Je copie des images d'un autre site. Lorsque la fonction de copie est exécutée, je reçois cette erreur. $ S = copier ($ img, "images / ".cg, nœud_online_name1);