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

Langage PHP Discussion :

Erreur : DOMDocument::save(): string is not in UTF-8


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut Erreur : DOMDocument::save(): string is not in UTF-8
    Bonjour à tous,

    J'ai une erreur sur une ligne de mon code, que je n'arrive pas à éliminer.
    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $xml_file = new DOMDocument("1.0");
    $xml_file->save((dirname(__FILE__)."/rss/flux-".$ville.".xml"));
    Et bien que cela fonctionne, j'ai le Warning suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DOMDocument::save(): string is not in UTF-8
    Comment faut-il que je fasse ? Il faut que j'ajoute des "\" ?

    Merci de votre aide ?

    P.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu crées des XML vide ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut
    Non j'ai sauté le code où je remplis le fichier car il ne me semblait pas que c'était utile.

    Voilà le code complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $xml_file = new DOMDocument("1.0");
    // on initialise le fichier XML pour le flux RSS
    $channel = init_news_rss($xml_file);
     
    foreach($news as $valeur)
    {
    $url=$urlsite."deal-".$ville."-".$valeur["id_deal"]."-".$valeur["id_categorie"]."#utm-medium=rss";
    $description='<img src="'.$valeur["image"].'"> '.$valeur["description"];
    add_news_node($xml_file, $channel, $valeur["titre"], $description, $valeur["image"], $url, $valeur["date_creation_deal"]);
    }
    // on écrit le fichier
    $xml_file->save((dirname(__FILE__)."/rss/flux-".$ville.".xml"));
    ah mes en fait je crois que je comprends mieux le message d'erreur au vu de ta question, la question n'est pas sur le nom du fichier, mais sur le contenu ?
    Il faudrait que je convertisse le contenu au bon format ?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pour créer des noeud utilise createElement, verifie que tes donnée soit bien en utf-8

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 176
    Par défaut
    En fait dans ma fonction add_news_node
    j'utilise CreateElement.

    Voilà la fonction :
    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
    function add_news_node(&$parent, $root, $titre, $description, $img, $url, $date_creation)
    {
            $item = $parent->createElement("item");
            $item = $root->appendChild($item);
     
            $title = $parent->createElement("title");
            $title = $item->appendChild($title);
            $text_title = $parent->createTextNode($titre);
            $text_title = $title->appendChild($text_title);
     
            $desc = $parent->createElement("description");
            $desc = $item->appendChild($desc);
            $text_desc = $parent->createTextNode($description);
            $text_desc = $desc->appendChild($text_desc);
     
            $image= $parent->createElement("image");
            $image = $item->appendChild($image);
            $text_image = $parent->createTextNode($img);
            $text_image = $image->appendChild($text_image);
     
            $link = $parent->createElement("link");
            $link = $item->appendChild($link);
            $text_link = $parent->createTextNode($url);
            $text_link = $link->appendChild($text_link);
     
    		$pubDate = $parent->createElement("pubDate");
            $pubDate = $item->appendChild($pubDate);
            $text_pubDate = $parent->createTextNode($date_creation);
            $text_pubDate = $pubDate->appendChild($text_pubDate);
    }
    Est-ce que si je remplace l'appel de ma fonction par cela ça devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    add_news_node($xml_file, $channel, utf8_encode($valeur["titre"]), utf8_encode($description), utf8_encode($valeur["image"]), utf8_encode($url), $valeur["date_creation_deal"]);
    Je vais tester. Je vous dirai.

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Pierrick81
    Est-ce que si je remplace l'appel de ma fonction par cela ça devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    add_news_node($xml_file, $channel, utf8_encode($valeur["titre"]), utf8_encode($description), utf8_encode($valeur["image"]), utf8_encode($url), $valeur["date_creation_deal"]);
    Je vais tester. Je vous dirai.
    Uniquement si les valeurs sont en iso-8859-1...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XML] Erreur bloquante : string is not in UTF-8
    Par Mikkle dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 18/02/2010, 14h54
  2. Erreur String was not recognized as a valid DateTime.
    Par andre99 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 27/01/2009, 20h34
  3. Erreur compilation avec <string>
    Par seal3 dans le forum SL & STL
    Réponses: 9
    Dernier message: 25/08/2005, 20h41
  4. [C#] Erreur comparaison de string
    Par Damsou dans le forum ASP.NET
    Réponses: 13
    Dernier message: 11/02/2005, 11h14
  5. Réponses: 3
    Dernier message: 30/09/2004, 20h16

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