copie_locale() et non-ASCII
Il semblerait que copie_locale() n'aime pas les chemins avec du non-ASCII. Mais parce que curl n'aime pas non plus.
Exemple d'URL que j'avais, qui marche bien dans le navigateur, Firefox s'en sortant comme il faut : http://www.sppef.fr/wp-content/uploads/2018/10/sppef_chapelle-sainte-anne-mh-tign®.apr¿s-le-supplice-de-la-croix-le-supplice-des-pales..jpg
Quand on recopie depuis Firefox, il a modifié et a encodé en % les non-ASCII, ce qui donne : http://www.sppef.fr/wp-content/uploads/2018/10/sppef_chapelle-sainte-anne-mh-tign%C2%AE.apr%C2%BFs-le-supplice-de-la-croix-le-supplice-des-pales..jpg
Et là cette URL transformée fonctionne parfaitement avec curl et copie_locale().
Il n'y a pas de fonction pour ça en PHP, n'encode que les caractères chelous, mais pas les ":" "/" etc. Stackoverflow donne comme solution en PHP :
$url = preg_replace_callback('/[^\x20-\x7f]/', function($match) { return urlencode($match[0]); }, $url);
Et ça marche parfaitement avec ça !
Ne faudrait-il donc pas intégrer en permanence cette transformation dans notre copie_locale() ?