Bonjour à tous!
Dans ce topic:
topic
je parlais de remplacer des anti-slash apostrophes ( \' ) par des apostrophes ( ' ).
Voici le code en question :
Sur ce code tout a très bien marché tout de suite.
Sauf que là j'ai un petit soucis. J'ai un XML qui stocke toutes mes news. Mon site étant entièrement encodé en UTF-8 (enfin je pense que c'est la raison tout du moins) mes apostrophes ( ' ) sont remplacées par des anti-slash apostrophes ( \' ). Je me retrouve donc devant le même problème que dans mon ancien topic... Mais non! Parce qu'après avoir essayé str_replace et preg_replace, rien n'est remplacé. Et qand je teste avec d'autres valeurs (je remplace "de" par "sa") il n'y a aucun soucis.
Voici mon code:
Voilà, je suis un peu désespéré. J'ai l'impression que tout s'oppose à mon avancée...
Merci d'avance pour votre aide
EDIT : correction du lien
Modifié par arnaultp (04 Sep 2007 - 09:30)
Dans ce topic:
topic
je parlais de remplacer des anti-slash apostrophes ( \' ) par des apostrophes ( ' ).
Voici le code en question :
<?php
if( $_POST && $_POST['document'] )
{
$document = html_entity_decode( $_POST['document'] , ENT_QUOTES , "UTF-8" );
$pieces = explode('/',$document);
$nomFichier = str_replace( "\\'" , "'" , $pieces[count($pieces)-1] );
$document = str_replace( "\\'" , "'" , utf8_decode($document) );
//$document = utf8_decode("contenu/Qualité/1-MQ-Managt Qualité/Recueil qualité/Notepersonnel-140906.doc");
header('Content-Type: text/html; Charset=UTF-8');
header('Content-disposition: attachment; filename='.utf8_decode($nomFichier));
header('Content-Type: application/force-download');
header('Content-Transfer-Encoding: fichier');
header('Content-Length: '.filesize($document));
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile("$document");
}
?>
Sur ce code tout a très bien marché tout de suite.
Sauf que là j'ai un petit soucis. J'ai un XML qui stocke toutes mes news. Mon site étant entièrement encodé en UTF-8 (enfin je pense que c'est la raison tout du moins) mes apostrophes ( ' ) sont remplacées par des anti-slash apostrophes ( \' ). Je me retrouve donc devant le même problème que dans mon ancien topic... Mais non! Parce qu'après avoir essayé str_replace et preg_replace, rien n'est remplacé. Et qand je teste avec d'autres valeurs (je remplace "de" par "sa") il n'y a aucun soucis.

Voici mon code:
<div id="contenu">
<h1> Toute l'actualité de la Sodedat 93! </h1>
<?php
function normalize($str_bizarre)
{
$pattern = Array("/\\'/");
// notez bien les / avant et après les caractères
$rep_pat = Array("'");
$str_normale = preg_replace($pattern, $rep_pat, $str_bizarre);
return $str_normale;
}
$dom = new DomDocument();
$xmlObject = "XML/news.xml";
$dom->load($xmlObject);
$tagId = $dom->getElementsByTagName('id');
$tagNom = $dom->getElementsByTagName('nom');
$tagTitre = $dom->getElementsByTagName('titre');
$tagDate = $dom->getElementsByTagName('date');
$tagHeure = $dom->getElementsByTagName('heure');
$tagMessage = $dom->getElementsByTagName('message');
$tagURL = $dom->getElementsByTagName('url');
for( $i=0 ; $i<$tagNom->length ; $i++ )
{
$id = $tagId->item($i)->nodeValue;
$nom = $tagNom->item($i)->nodeValue;
$titre = $tagTitre->item($i)->nodeValue;
$date = $tagDate->item($i)->nodeValue;
$heure = $tagHeure->item($i)->nodeValue;
$message = $tagMessage->item($i)->nodeValue;
$url = $tagURL->item($i)->nodeValue;
if( is_int($id/2) )
{
$classe = "pair";
}
else
{
$classe = "impair";
}
?>
<div class="news">
<table border="0" cellspacing="2" cellpadding="3">
<tr class=<?php echo $classe ?> class="entete">
<td><?php echo $nom ?></td>
<td><?php echo $titre ?></td>
<td><?php echo $date." - ".$heure ?></td>
</tr>
</table>
<table border="0" cellspacing="2" cellpadding="3">
<tr class=<?php echo $classe ?> class="message">
<td ><?php echo $message ?></td>
</tr>
</table>
</div>
<?php
}
?>
</div>
Voilà, je suis un peu désespéré. J'ai l'impression que tout s'oppose à mon avancée...
Merci d'avance pour votre aide
EDIT : correction du lien
Modifié par arnaultp (04 Sep 2007 - 09:30)