Project

General

Profile

Anomalie #4612

copie_locale() et non-ASCII

Added by RastaPopoulos ♥ 4 months ago. Updated 2 months ago.

Status:
Fermé
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
12/04/2020
Due date:
% Done:

0%

Resolution:
fixed
Navigateur:

Description

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() ?

History

#1 Updated by cedric - 2 months ago

  • Status changed from Nouveau to Fermé
  • Target version set to 3.3
  • Resolution set to fixed

Also available in: Atom PDF