Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 6 sur 6
  1. #1
    Invité régulier
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2012
    Messages : 26
    Points : 9
    Points
    9

    Par défaut problème Caractères spéciaux

    Bonjour, j'essai actuellement de récupéré des données de ma bdd en passant par un fichier php qui me créé un fichier xml pour ensuite le récupéré en Java.

    Mon problème est que parfois dans ma bdd j'ai soit des caractères du genre &eacute; ou soit des balises <b> par exemple.

    Du coup un fois mon fichier xml généré, il me créé une erreur a cause de ces caractères la.

    j'ai essayé avec htmlspecialchars() mais ça ne change rien ><

    Que puis je faire ? ( soyez indulgent je débute )

    Cordialement.

    Code :
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php
    include("connect.php");
     
    $link = mysql_connect($db_host, $db_user, $db_pass) or mysql_error();
    $conn = mysql_select_db($db_name);
     
    mysql_select_db($conn, $link);
     
    //OuvertureCréation du fichier test.xml dans le dossier courant
    //w : Ouvre en écriture seule : place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
     
    $file = fopen("test.xml", "w");
     
    $_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
     
    //Dans cette 1ere ligne, définissant notre XML, 
    //on découvre le 1er élément important: '\r\n'.
    //\r\n signale un retour chariot, puis une nouvelle ligne. 
    //Vestige d'une histoire passée.
    //Cela nous permet de sauter une ligne dans notre nouveau fichier.
     
    //Le XML est défini, il ne reste plus qu'a le remplir :
    //Je reprend le même exemple que précédemment
     
    $sql = mysql_query('SELECT * FROM products');
     
    $_xml .= "<cigway>\r\n";
    //Le '.' devant le '=' est important, 
    //on ajoute du contenu à celui déjà présent dans la variable.
    while($row = mysql_fetch_array($sql, MYSQL_ASSOC)){
         $_xml .="<products>\r\n";
         $_xml .="<id_product>". htmlspecialchars($row["id_product"])."</id_product>\r\n";
         $_xml .="<cat>". htmlspecialchars($row["cat"])."</cat>\r\n";
    	 $_xml .="<code>". htmlspecialchars($row["code"])."</code>\r\n";
    	 $_xml .="<concentration>". htmlspecialchars($row["concentration"])."</concentration>\r\n";
    	 $_xml .="<gout>". htmlspecialchars($row["gout"])."</gout>\r\n";
    	 $_xml .="<couleur>". htmlspecialchars($row["couleur"])."</couleur>\r\n";
    	 $_xml .="<title_fr>". htmlspecialchars($row["title_fr"])."</title_fr>\r\n";
    	 $_xml .="<title_fr_cart>". htmlspecialchars($row["title_fr_cart"])."</title_fr_cart>\r\n";
    	 $_xml .="<cara_fr>". htmlspecialchars($row["cara_fr"])."</cara_fr>\r\n";
    	 $_xml .="<cara_fr_product>". htmlspecialchars($row["cara_fr_product"])."</cara_fr_product>\r\n";
    	 $_xml .="<price>". htmlspecialchars($row["price"])."</price>\r\n";
    	 $_xml .="<discount>". htmlspecialchars($row["discount"])."</discount>\r\n";
    	 $_xml .="<price_promo>". htmlspecialchars($row["price_promo"])."</price_promo>\r\n";
    	 $_xml .="<port>". htmlspecialchars($row["port"])."</port>\r\n";
    	 $_xml .="<homepage>". htmlspecialchars($row["homepage"])."</homepage>\r\n";
    	 $_xml .="<defaultpic>". htmlspecialchars($row["defaultpic"])."</defaultpic>\r\n";
    	 $_xml .="<created>". htmlspecialchars($row["created"])."</created>\r\n";
    	 $_xml .="<distributeur>". htmlspecialchars($row["distributeur"])."</distributeur>\r\n";
    	 $_xml .="<stock>". htmlspecialchars($row["stock"])."</stock>\r\n";
    	 $_xml .="<ref_logistique>". htmlspecialchars($row["ref_logistique"])."</ref_logistique>\r\n";
    	 $_xml .="<volume_logistique>". htmlspecialchars($row["volume_logistique"])."</volume_logistique>\r\n";
    	 $_xml .="<sell_admin>". htmlspecialchars($row["sell_admin"])."</sell_admin>\r\n";
    	 $_xml .="<ref_facturation>". htmlspecialchars($row["ref_facturation"])."</ref_facturation>\r\n";
    	 $_xml .="<alt_img_product>". htmlspecialchars($row["alt_img_product"])."</alt_img_product>\r\n";
    	 $_xml .="<url_rw>". htmlspecialchars($row["url_rw"])."</url_rw>\r\n";
    	 $_xml .="<ean>". htmlspecialchars($row["ean"])."</ean>\r\n";
     
     
         $_xml .= "</products>\r\n";
    }
     
    $_xml .= "</cigway>\r\n";
     
    //Pour faire simple : Là ou nous mettions 'echo', 
    //il suffit de mettre $_xml .= "... \r\n"
     
    //fwrite(); se définit avec deux paramètres :
    //1. Le fichier où l'on écrit
    //2. Le contenu a écrire
     
    fwrite($file, $_xml);
     
    //on ferme le fichier
    fclose($file);
     
    ?>

  2. #2
    Invité régulier
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2012
    Messages : 26
    Points : 9
    Points
    9

    Par défaut Re

    En fait c'était tout bête, suffisais de changer :

    Code :
    $_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
    en

    Code :
    $_xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\r\n";
    Voila

  3. #3
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    8 910
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 8 910
    Points : 13 345
    Points
    13 345

    Par défaut

    Euh, alors déjà ça a rien à voir avec les problèmes évoqués (&eacute; et <b>.)

    Ensuite, ce serait tout de même plus malin de faire gérer ça par DOMDocument, quand même.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  4. #4
    Invité régulier
    Homme Profil pro
    Inscrit en
    octobre 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : octobre 2012
    Messages : 26
    Points : 9
    Points
    9

    Par défaut Re

    Merci pour la réponse, par contre pouvez vous m'expliquer plus en détails s'il vous plait ?

  5. #5
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    8 910
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 8 910
    Points : 13 345
    Points
    13 345

    Par défaut

    Ben pas trop, PHP c'est pas mon rayon. Mais bon, Google, PHP, "créer un document XML" ça devrait faire l'affaire je pense.

    Ce que moi je voulais dire, c'est qu'on écrit jamais un document XML soi-même, et on n'échappe jamais rien soi-même pour le faire. Il y a des outils pour ça, c'est leur boulot.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais.
    Partagez vos connaissances, mais aussi comment s'en servir.

  6. #6
    Modérateur
    Avatar de polymorphisme
    Homme Profil pro Grégory Roche
    Publishing
    Inscrit en
    octobre 2009
    Messages
    1 436
    Détails du profil
    Informations personnelles :
    Nom : Homme Grégory Roche
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing

    Informations forums :
    Inscription : octobre 2009
    Messages : 1 436
    Points : 2 338
    Points
    2 338

    Par défaut

    Bonjour,

    il faut que tu cherche dans les librairies du PHP, il y a tout ce qu'il te faut.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •