IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM XML] Flux RSS en PHP


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut [DOM XML] Flux RSS en PHP
    Bonjour,

    j'ai un fichier xml qui correspond à mon flux rss. Dans mon administration, suivant certaines pages j'ajoute <item>...</item> à la suite de mon rss.
    Quand j'affiche mon flux dans firefox, j'ai un problème d'accent et je comprend pas d'où çà viens, j'ai beau spécifier l'encodage ou en changer ca fais rien ou ca fais beuger mon script....

    affichage : azzazazaz 驩鼯

    mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0"?>
    <rss version="2.0">
        <channel>
         <title>Afortech</title> 		
         <link>http://www.afortech.com</link>		
         <description>Organisme de formation professionnelle sp&#xE9;cialis&#xE9;e dans les m&#xE9;tiers du g&#xE9;nie climatique, de la couverture et de la plomberie.</description>		
         <language>fr-FR</language>  
        </channel>	
        <item>  
          <title>Mise en ligne</title>		  
          <link>http://www.afortech.com/index.php</link>	  
          <description>Afortech vous signale la mise en ligne de son nouveau site.</description>	
       </item>
    </rss>
    J'ai essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="iso-8859-1" ?>
    Mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    $monXml = dirname(__FILE__)."/../flux.xml";		  
    		  if(!$dom = domxml_open_file($monXml)) {
    			  echo "Erreur lors de l'analyse du document\n";
    			  exit;
    		  }
     
    		  $xpath = $dom->xpath_new_context();
    		  $noeuds = $xpath->xpath_eval("//channel");		 
    		  $root=$dom->document_element();
     
    		  foreach ($noeuds->nodeset as $noeud) 
              { 		  		  		 	          
    			  $newItem = $dom->create_element("item");			  			 
    			  $root->append_child($newItem); 
     
    			  //Title
    			  $title = $dom->create_element("title");	
    			  $titleTexte = $dom->create_text_node("Nouvelle actualité : ".$_POST['titre']);
    			  $title->append_child($titleTexte);  
     
    			  //Link
    			  $link = $dom->create_element("link");
    	          $linkTexte = $dom->create_text_node("http://127.0.0.1/AfortechPhp/site13032008/afortech-actualite.php");
    			  $link->append_child($linkTexte);  		  
     
    			  //Description
    			  $description = $dom->create_element("description");				  
    			  $desc = ""; 	
    			  if(!empty($_POST['focus']))  {
    			     $desc .= $_POST['focus']."\n";
    			  }
     
    			  if(!empty($_POST['derMin'])) {
    			     $desc .= $_POST['derMin']."\n";
    			  }
     
    			  //$desc = html_entity_decode($desc);					
    			  $descTexte = $dom->create_text_node($desc);  
    			  $description->append_child($descTexte);  
     
    			  $newItem->append_child($title); 
    			  $newItem->append_child($link); 
    			  $newItem->append_child($description); 
     
    			  //$monXml = utf8_decode(strip_tags($monXml));
    			  $dom->dump_file($monXml, false, true); 
    		  }

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Ton problème vient de ces caractères que je lis dans ton fichier XML : &#xE9;

    Si tu précises être en UTF-8 ou en iso-8859-15 plutôt que le iso-8859-1 (qui ne compte pas tous les accents français), tu peux saisir tes accents sans les coder bizarrement comme tu le fais.

    Que tu choisisses UTF-8 ou iso-8859-15, quant tu enregistres ton fichier, vérifie bien de sauvegarder sous ce format et non pas dans le format par défaut.

  3. #3
    Membre habitué
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Points : 166
    Points
    166
    Par défaut
    Mon ficher xml est maintenant comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="iso-8859-15" ?>
    <rss version="2.0">
        <channel>
         <title>Afortech</title> 		
         <link>http://www.afortech.com</link>		
         <description>Organisme de formation professionnelle spécialisée dans les métiers du génie climatique, de la couverture et de la plomberie.</description>		
         <language>fr-FR</language>  
        </channel>	
        <item>  
          <title>Mise en ligne</title>		  
          <link>http://www.afortech.com/index.php</link>	  
          <description>Afortech vous signale la mise en ligne de son nouveau site.</description>	
       </item>
    </rss>
    mais pareil quand je lance mon script il supprime tout et me met ces erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: dump_file(): output conversion failed due to conv error in ...
    Warning: dump_file(): Bytes: 0xE9 0xE9 0xE9 0x26 in ...
    Warning: dump_file(): encoder error in ...
    Je vois pas ce que j'ai mal fais à la modification de mon xml.

Discussions similaires

  1. [Forum] Flux rss via php n'affiche pas les apostrophes
    Par bizebi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 27/03/2012, 10h09
  2. [XML] Génération fichier XML pour RSS via PHP, problème lors de l'écriture
    Par gator dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 04/02/2012, 18h17
  3. Lecture d'un flux RSS avec PHP
    Par Springbox dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/02/2011, 21h37
  4. Flux RSS avec PHP : encodage UTF-8 vers ISO-8559-1
    Par eric437 dans le forum Langage
    Réponses: 1
    Dernier message: 03/08/2008, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo