Problème d'URL avec symbole + en PHP

Fermé
vib10666 Messages postés 2 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 9 novembre 2015 - 9 nov. 2015 à 09:10
samyb2313 Messages postés 52 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 15 janvier 2020 - 10 nov. 2015 à 14:53
Bonjour,
Nous récupérons des URL de pochettes de musique de manière automatique chez Amazon via un logiciel de diffusion radio. Ce dernier intègre dans les fiches artistes ce lien qui comprend malheureusement parfois un symbole + (en fait un espace).
Le problème c'est qu'ensuite nous reprenons ces informations pour les afficher sur nos players. Pour cela le logiciel crée un xml qui est ensuite parsé en PHP, ce qui pose un problème avec les liens qui comprennent un symbole + ou un espace. En résumé :
Dans notre fiche artiste sur le logiciel de diffusion radio nous avons ce lien (avec %2B) :
http://ecx.images-amazon.com/images/I/51rO%2Bs3-TvL.jpg

Sur notre fichier XML le lien devient (avec le symbole +):
http://ecx.images-amazon.com/images/I/51rO+s3-TvL.jpg

Et sur notre PHP le lien devient (avec un simple espace) :
http://ecx.images-amazon.com/images/I/51rO s3-TvL.jpg
et là il n'affiche plus rien.

Est-ce qu'il y a une solution pour l'encodage de cet espace. Sur un fichier HTML que nous sortons en parallèle il n'y a pas de soucis. Il semble que XML encode nécessairement les espaces par le symbole +. Est-ce qu'il faut agir sur le fichier php ?

Voilà le fichier XML en question : http://www.vibration108.ch/onair_chansonsfrancaises.xml

Et voilà le fichier PHP qui affiche les pochettes : http://www.vibration108.ch/titrage2016/vibrationchansonfr_onair_pochette.php

Un grand merci pour votre aide.
A voir également:

1 réponse

samyb2313 Messages postés 52 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 15 janvier 2020 5
9 nov. 2015 à 11:51
il faudrait peut etre faire un str_replace en php avant l'affichage.


str_replace('%2B',' ',$ma_chaine);
0
vib10666 Messages postés 2 Date d'inscription lundi 9 novembre 2015 Statut Membre Dernière intervention 9 novembre 2015
9 nov. 2015 à 12:55
Merci pour la réponse. Ca n'a pas l'air de marcher... est-ce que c'était l'idée :

// si enclosure, on affiche.
if($enclosure=$item->get_enclosure(0)){

echo "<img src=\"", str_replace('%2B',' ',$enclosure);
echo $enclosure->get_link();
echo "\" border=\"0\" style=\"float:left\" width=\"250\" height=\"250\">";
}

}
0
samyb2313 Messages postés 52 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 15 janvier 2020 5
10 nov. 2015 à 14:53
Oui c'est l'idée !, sauf qu'il faut vraiment mettre un espace !

echo "<img src=\"", str_replace('%2B',' ',$enclosure);
0