PHP xml et apostrophe
Philippe
-
Philippe -
Philippe -
Bonjour,
j'ai un problème étrange (ou pas?)
j'ai créé un fichier xml manuellement dedans j'ai mis des valeurs avec des apostrophes, accents, etc.
je viens lire ce fichier avec du php.
j'arrive a récupérer correctement les données mais je bloque sur une balise contenant un apostrophe.
le php m'affiche
noël de l'
j'ai essayé utf8_decode, htmlspecialchars rien ne change.
qu'est ce qu'y bloque ?
j'ai un problème étrange (ou pas?)
j'ai créé un fichier xml manuellement dedans j'ai mis des valeurs avec des apostrophes, accents, etc.
je viens lire ce fichier avec du php.
j'arrive a récupérer correctement les données mais je bloque sur une balise contenant un apostrophe.
<subtitle>noël de l'an</subtitle>
le php m'affiche
noël de l'
j'ai essayé utf8_decode, htmlspecialchars rien ne change.
qu'est ce qu'y bloque ?
A voir également:
- Xml apostrophe
- Xml download - Télécharger - Édition & Programmation
- Office xml handler - Télécharger - Traitement de texte
- Driveimage xml - Télécharger - Sauvegarde
- Apostrophe inversée - Forum Word
- Xml parsing error ✓ - Forum Word
4 réponses
Pourrait-on voir ton script ainsi que le XML (au minimum sa structure) ?
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
le fichier xml
le code php
l'affichage
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <videos> <video nameFich="video_01" vignette="video_01.jpg"> <fr> <title>un titre</title> <subtitle>noël de l'an</subtitle> <description> <![CDATA[ une description ]]> </description> </fr> </video> </videos>
le code php
function lireXMLInfosVideo($fichier)
{
$tabInfosVideo = array("title" => "", "subtitle" => "", "description" => "");
if (file_exists($fichier)) {
$xml = simplexml_load_file($fichier);
$tabInfosVideo["title"] = $xml->video->$_SESSION["lang"]->title;
$tabInfosVideo["subtitle"] = $xml->video->$_SESSION["lang"]->subtitle;
$tabInfosVideo["description"] = $xml->video->$_SESSION["lang"]->description;
return $tabInfosVideo;
}
}
l'affichage
...
$tabVideo = lireXMLInfosVideo('videos/'.$videos[0].'.xml');
echo "<a rel='shadowbox[videos];width=640;height=504;title=".$tabVideo["title"]." | ".$tabVideo["subtitle"].";' href='#player-".$compteurVideos."' alt='<p>".$tabVideo["description"]."</p>'>";
...
en reprenant apres une pause je viens de m'apercevoir que cela bloque lors de mon affichage.
le php a bien recupéré la chaine entiere mais lorsqu'il l'affiche il cloture prematurement ma balise html a
echo "<a rel='shadowbox[videos];width=640;height=504;title=".$tabVideo["title"]." | ".$tabVideo["subtitle"].";' href='#player-".$compteurVideos."' alt='<p>".$tabVideo["description"]."</p>'>";
le php a bien recupéré la chaine entiere mais lorsqu'il l'affiche il cloture prematurement ma balise html a
j'ai trouvé une solution mais je la trouve bancale ...
j'ai interverti mes guillements et mes apostrophes dans mon affichage et rajouté htmlspecialchars()
avant:
apres:
du coup je vais tout inverser et mettre htmlspecialchars() partout.
il me semblait pourtant que pour un echo on pouvait mettre des guillemets ou apostrophes indifferement.
e.g: echo ""; ou echo '';
existe t-il une autre astuce ? pour permettre un echo "";
j'ai interverti mes guillements et mes apostrophes dans mon affichage et rajouté htmlspecialchars()
avant:
echo "<a rel='shadowbox[videos];width=640;height=504;title=".$tabVideo["title"]." | ".$tabVideo["subtitle"].";' href='#player-".$compteurVideos."' alt='<p>".$tabVideo["description"]."</p>'>";
apres:
echo '<a rel="shadowbox[videos];width=640;height=504;title='.$tabVideo["title"].' | '.htmlspecialchars($tabVideo["subtitle"]).' ;" href="#swf-player-'.$compteurVideos.'" alt="<p>'.$tabVideo["description"].'</p>">';
du coup je vais tout inverser et mettre htmlspecialchars() partout.
il me semblait pourtant que pour un echo on pouvait mettre des guillemets ou apostrophes indifferement.
e.g: echo ""; ou echo '';
existe t-il une autre astuce ? pour permettre un echo "";