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 :

[SimpleXML] PHP & Simple XML


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut [SimpleXML] PHP & Simple XML
    Bonjour,

    dans le cadre de la creation d'un site multilingue, j'ai opté pour des fihciers xml pour les textes de traduction mais je suis confronté a un petit probleme, et qui ne l'ai peut etre pas pour vous
    certain de mes textes contiennent des balises html (<p>, <a href="..." ...>, ...)
    je compte creer une interface pour traduire les textes, mais comment gerer ces balises??
    1- afficher les textes dans des <textarea>, toutes les balises seront visibles et il faut manier un peu le code pour traduire?

    2- afficher les textes dans des <div> qui prendront en compte les balises, et dans ce cas, on ne touche pas du tout au code ?? si c'est la solution recommandée, comment y proceder??

    Merci beaucoup de votre aide

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Salut,

    Regardes peut être ceci peut t'aider :

    http://php.net/manual/fr/function.strip-tags.php

    Cordialement,

    Mathieu

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Bonjour et merci pour ta reponse.

    au fait je ne cherche pas a supprimer les balises, je dois bien au contraire les garder

  4. #4
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Dans ce cas la, pourquoi ne pas utiliser "tinymce" ou "ckeditor" ?

    Cordialement,

    Mathieu

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    j'y avais pensé mais j'ai decliné cette option car je n'ai pas besoin d'un editeur de texte avancé!
    les 3 SEULS balises que j'aurais sont:
    <b>, <a>, <p> et peut etre <i> !

  6. #6
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    certain de mes textes contiennent des balises html
    Normalement, il ne faut pas mettre de HTML dans des contenus linguistiques.
    Le HTML c'est déjà l'interface, ça peut être un énorme problème de conception pour un usage futur.

    Imagine un instant que cette donnée doit être exploitée dans une interface différente, comme un document PDF, Excel, etc ... le HTML va causer problème.
    Aussi, aujourd'hui une interface même HTML est prévue pour un écran d'une certaine résolution, mais si demain on prévoit de la rendre sur un smartphone, ce contenu même HTML peu poser problème.

    Bon, c'est juste une remarque, mais il faut vraiment éviter de rendre trop spécifique des traductions, on perd en souplesse, surtout en automatisme.
    La logique veut que ce soit la partie interface qui met en forme une donnée, linguistique ou autre d'ailleurs.


    Mise à part ça, de mon coté j'utilise XMLWriter (fait parti de Php) pour créer des document XML.
    Cette classe facilite vraiment leur création tant son usage est simple, de plus prévoit tout ce qu'il faut comme mettre du contenu HTML.

    Ensuite, j'utilise de temps à autre SimpleXML ou DomDocument/DomXPath pour récupérer le données XML.

    Si c'est la création qui cause problème, avec XMLWriter ça donne par exemple :
    (pour la création d'un XML pour un flux RSS)
    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
     
    $doc = new XMLWriter();
    $doc->openUri('un/chemin/vers/ou/creer/le/fichier.xml');
    $doc->setIndent(TRUE);
    $doc->startDocument('1.0', 'UTF-8');
    $doc->startElement ('rss');
    $doc->writeAttribute('version', '2.0'); // RSS
    $doc->startElement ('channel'); // CHANNEL
    $doc->writeElement('title', 'UN TITRE');
     
    ... etc ...
     
    while ($articles = $sStmt->fetch()) {
        $doc->startElement('item'); // ITEM
     
        // Section CDATA
        $doc->startElement('description');
        $desc = '<p>Un paragraphe</p>
    <a href="http://wwwdomaine.com">Un lien</a>
    <i>italic</i>';
        $doc->writeCdata($desc);
        $doc->endElement();
        // FIN Section CDATA
     
        $doc->endElement(); // Fin élément ITEM
    }
    ... etc ...
    $doc->endElement(); // Fin élément CHANNEL
    $doc->endElement(); // Fin élément RSS
    $doc->flush();
    Chaque élément qui contient du contenu genre HTML est créé dans une section CDATA.
    Au final, cette partie génèrera ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <description><![CDATA[<p>Un paragraphe</p>
    <a href="http://wwwdomaine.com">Un lien</a>
    <i>italic</i>]]></description>
    On peu donc faire la même chose "à le mano" au lieu d'utiliser XMLWriter.

    Le document étant conforme, la récupération des données peu ce faire avec SimpleXML, ou autre.
    Théoriquement il ne devrait pas avoir de problème.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Salut RunCodePhp, cava?

    je sais que c'est deconseillé de mettre du code dans le contenu, mais je suis bien obligé par fois!!
    voici un exemple de variable xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <ma_variable>This message was intended for %s. If this is not you, please ignore this email.&lt;br /&gt;
    		Please follow the link below to subscribe/ unsubscribe. &lt;a href="https://www.site.com/account/" style="color: #fff; text-decoration: underline;" target="_blank"&gt;https://www..com/account/&lt;/a&gt;</ma_variable>
    pour l'afficher j'utilise simplexml_load_file

    d'apres tes exemples, je constate qu'il vaut mieux utiliser le CDATA, pourquoi?? mis a part le fait que je peut mettre directement < au lieu de &lt;

    quelle est la difference entre le code que tu m'as filé et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sxml->c = "<a href='text.php?t=1&b=2'>Nouvelle valeure</a>";
    ...
    $sxml->saveXML("inc/lib/lang/en/global.xml");

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    d'apres tes exemples, je constate qu'il vaut mieux utiliser le CDATA, pourquoi?? mis a part le fait que je peut mettre directement < au lieu de &lt;
    Théoriquement CDATA c'est mieux oui, du coup, faire autrement sera forcément moins bien, non ?
    Maintenant, à te de voir, c'était juste pour comme ça avec un exemple de code.


    1- afficher les textes dans des <textarea>, toutes les balises seront visibles et il faut manier un peu le code pour traduire?

    2- afficher les textes dans des <div> qui prendront en compte les balises, et dans ce cas, on ne touche pas du tout au code ?? si c'est la solution recommandée, comment y proceder??
    On peu difficile te conseiller dans ce genre de choix, ça dépend beaucoup trop du but recherché, et particulièrement les personnes concernées, les traducteurs (les éditeurs).

    S'ils ne maitrisent pas du tout le code HTML, il faudra surement un éditeur intégré tel que "tinymce" ou "ckeditor", et il en existe beaucoup, du plus simple au plus avancé (les 2 cités entre autre).
    On peu envisager de faire comme sur ce forum, opter pour du BBCode, les éditeurs sont peut être plus habitués.
    Le plus simple serait de rechercher l'éditeur adapté afin de l'intégrer.
    Sinon, c'est loin d'être simple à créer son propre éditeur intégré.


    L'idéal serait qu'il connaissent le HTML, au moins les bases ou le peu de balises que tu as indiqué, quitte à les former.
    Plus besoin d'éditeur dans ce cas là.

    Pour ma part, tout existe déjà, il y a juste un choix à faire.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Théoriquement CDATA c'est mieux oui, du coup, faire autrement sera forcément moins bien, non ?
    tu as bien raison

    S'ils ne maitrisent pas du tout le code HTML, il faudra surement un éditeur intégré tel que "tinymce" ou "ckeditor", et il en existe beaucoup, du plus simple au plus avancé (les 2 cités entre autre).
    On peu envisager de faire comme sur ce forum, opter pour du BBCode, les éditeurs sont peut être plus habitués.
    Le plus simple serait de rechercher l'éditeur adapté afin de l'intégrer.
    Sinon, c'est loin d'être simple à créer son propre éditeur intégré.
    j'essaie d'eviter les gros editeur tels que tinymce et autres...
    concernant BBCode, je comprends pas pourquoi ils utilisent [b] au lieu d'un <b> tout simplement...!!

    Pour ma part, tout existe déjà, il y a juste un choix à faire.
    c'est justement ca le probleme! je ne sais pas trop quoi faire ni choisir

Discussions similaires

  1. [SimpleXML] Comment traiter correctement simple XML avec du PHP ?
    Par Alexandrebox dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 14/12/2009, 14h30
  2. [SimpleXML] erreur avec simple XML sur le constructeur
    Par zulot dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/04/2007, 16h06
  3. [SimpleXML] PHP XML et accès aux variables
    Par vanilla dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 21/04/2006, 17h58
  4. [SimpleXML] Comment passer de XML à MySQL et vice-versa avec PHP ?
    Par Ben42 dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 05/12/2005, 21h42

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