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 :

BBcode gestion de la taille de caractère [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut BBcode gestion de la taille de caractère
    Bonjour à vous tous !

    (Avant tout, je voulais vous avertir que je ne connais rien au JS, en regardant les bouts de code, j'arrive à déchiffrer petit à petit, mais c'est tout ! :euh

    Voilà, en mettant en place un système de gestion de taille de caractère dans mon BBcode, je rencontre un soucis :

    Imaginons, j'écris :

    "[size=\5]Test[/size]

    [size=0.75]test[/size]"


    le view devrait me retourner un gros test et un tout petit, mais non, il me renvoit :

    "Test[/size]

    [size=0.75]test"
    Et le tout en très gros !

    Par contre, si je ne met qu'une balise de taille, c'est bien géré, à partir de deux, ca s'en mêle les pinceaux ... Donc je ne comprends pas d'ou peut provenir mon erreur dans la regex qui gère ca !

    Vient ensuite le code :

    Donc j'ai mon texte dans un textarea, deux boutons, un pour envoyer, l'autre pour prévisualiser.

    Voici la gestion des BBcode dans la page view.php qui gère la prévisualisation (je ne colle que la partie ou l'erreur doit être, sinon il y a trop de chose ^^):

    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
    $zcode = array( 
            '#\[\i](.+)\[/i]#siU',
            '#\[\b](.+)\[/b]#siU',
            '#\[\u](.+)\[/u]#siU',
            '#\[\s](.+)\[/s]#siU',
            '#\[align=(left|center|right)](.+)\[/align]#siU',
            '#\[color=(red|blue|grey|yellow|purple|green)](.+)\[/color\]#isU',
            '#\[size=([0-9]{1,2})](.+?)\[/size]#siU', <strong><span style="color:#ff0000;">// l'erreur doit se trouver sur cette ligne</span></strong>
            '#\[\*](.+?)#si',
     
        ); 
     
        $html = array( 
            '<em>$1</em>', 
            '<strong>$1</strong>',
            '<span style="text-decoration:underline;">$1</span>',
            '<span style="text-decoration:line-through;">$1</span>',
            '<div style="text-align:$1; width:100%;">$2</div>',
            '<span style="color:$1">$2</span>',
            '<span style="font-size:$1em;">$2</span>', <span style="color:#ff0000;"><strong>//la ligne de l'erreur continue ici</strong></span>
            '<li>$1',
     
        );
    Pour insérer la balise dans le textarea j'utilise une liste déroulante comme ceci (je viens d'ailleurs de remarquer que le bbcode ne comprend les chiffres à virgules tel que : "2.5" pour mettre avec em, c'est normal ?) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select onchange="insertTag('[size=' + this.options[this.selectedIndex].value + ']', '[/size]', 'textarea');">
        <option value="none" class="selected" selected="selected" >Taille</option>
        <option value="5">Très très gros</option>
        <option value="2.5">Très Gros</option>
        <option value="1.5">Gros</option>
        <option value="1">Normal</option>
        <option value="0.75">Petit</option>
    </select>
    Voilà ou j'en suis...
    Auriez vous des idées pour me permettre de régler mon soucis ?

    Dans tout les cas, je vous remercie d'avoir lu mon message ! :]


    (Si dans le message, vous voyez des "\" c'est normal, c'est pour faire en sorte que ca ne se transforme pas en bbcode une fois le message créé ! ^^)

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà ton expression dit : [0-9]{1,2}
    Soit un ou deux caractères entre 0 et 9.
    Donc 0.75 ce n'est pas prévu.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Oui !!

    Je corrige ca et met {1,3} alors ! Merci déjà ^^

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    {1,3} ça ne va toujours pas, il y a le point qui n'est pas pris en compte.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Alors, j'ai rejouté un \. et mis plutot un {1,4}, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '#\[size=([0-9\.]{1,4})](.+?)\[/size]#siU',
    Mais pas de changement dans mon erreur ! (par contre, ca y est, les chiffres à virgules sont bien pris en compte, donc merci beaucoup pour ca !)

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '#\[size=(\d?\.?\d{0,2})](.+?)\[/size]#siU'

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    En effet, ca marche aussi pour la gestion des valeurs à virgules, par contre, lorsqu'il y a deux balises, ca ne marche toujours pas !

    (Mais merci pour avoir "retraduit" ma regex ^^)

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    deux balises ?

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Oui, dès que je met deux balise comme ceci :
    "[size=\5]Test[/size]

    [size=0.75]test[/size]"


    la prévisualisation me retourne :
    "Test[/size]

    [size=0.75]test"


    Et le tout de la taille de la première balise (soit 5em)

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '#\[size=(\d?\.?\d{0,2})\](.+?)\[/size\]#si'
    Soit tu met U soit tu mets U soit tu mets ? dans le schéma, mais pas les deux pour la même chose.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    MERCI !!!!

    Ca marche ! Rahhhh, merci beaucoup à vous deux !

    Donc quand on ferme les "]" il faut mettre un"\" ?
    Car a aucune autre balise j'utilise "\" ...

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Heu visiblement non ce n'est pas nécessaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Sans vouloir t'embêter plus que nécessaire, tu saurais pourquoi alors sur cette balise il me le faut ?

  14. #14
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Tu peux l'enlever, le caractère ] n'a pas besoin d'être échappé. Autre chose, quand un caractère quelconque est échappé, qu'il n'a pas de raison de l'être et qu'il ne correspond pas à une séquence d'échappement (comme \w \s \n \h \N \A ...), l'échappement est tout simplement ignoré.

    Les seuls caractères devant être échappés en php (5.3 et supérieur) pour signifier un caractère litéral (en dehors d'une classe de caractère) sont:
    • ( ) [ | \ . * + ? ^ $
    • { uniquement s'il y a ambigüité avec un quantificateur {n} ou {m,n}
    • Le délimiteur utilisé
    • si on est en mode commentaire (modificateur x):# et l'espace (qui dans ce mode est ignoré)
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Mais si je ne l'échappe pas, si j'ai deux balise taille l'une à la suite de l'autre, ca ne marche pas ... quand je l'échappe si !

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ba si ça fonctionne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 34
    Points : 13
    Points
    13
    Par défaut
    Exact ... J'ai mal bidouillé ma regex alors !

    Merci BEAuCOUP à vous alors !

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

Discussions similaires

  1. [phpMyAdmin] réduire la taille des caractères dans phpMyAdmin
    Par loopback dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/02/2007, 13h04
  2. [FPDF] Problème de taille de caractères
    Par Didine_8 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/12/2006, 11h33
  3. Taille des caractères
    Par nellynew dans le forum IHM
    Réponses: 5
    Dernier message: 18/05/2006, 14h21
  4. Gestion des photos - Taille de la base
    Par le géologue dans le forum Access
    Réponses: 4
    Dernier message: 27/09/2005, 17h54
  5. [VBA]taille de caractères
    Par l@rry dans le forum Access
    Réponses: 2
    Dernier message: 12/01/2005, 10h57

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