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 :

Ou positionner la fonction dans un formulaire pour interpréter le BBCode? [RegEx]


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
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Par défaut Ou positionner la fonction dans un formulaire pour interpréter le BBCode?
    Bonjour tout le monde!

    Je suis en train de créer un forum et je voudrais utiliser le BBCode!

    Pour cela, j'ai créé toutes mes fonctions pour avec le [.b][/.b]

    Mais maintenant que dans ma texte area j'ai les balises en BBCode, je voudrais savoir comment et ou je peux faire interpréter le BBcode à l'envoie???

    J'ai trouvé une fonction pour cela, mais je ne sais pas ou la mettre pour qu'elle remplace le texte area...

    J'aurais penser dans la methode post, faire un onsubmit ou je ne sais quoi, mais je ne suis pas sur!

    Besoin d'aide, merci d'avance


    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    function bbCode($t)
    // remplace les balises BBCode par des balises HTML
    {
       // barre horizontale
       $t=str_replace("[/]", "<hr width=\"100%\" size=\"1\" />", $t);
       $t=str_replace("[hr]", "<hr width=\"100%\" size=\"1\" />", $t);
     
       // gras
       $t=str_replace("[b]", "<strong>", $t);
       $t=str_replace("[/b]", "</strong>", $t);
     
       // italique
       $t=str_replace("[i]", "<em>", $t);
       $t=str_replace("[/i]", "</em>", $t);
     
       // soulignement
       $t=str_replace("[u]", "<u>", $t);
       $t=str_replace("[/u]", "</u>", $t);
     
       // alignement centré
       $t=str_replace("<div style="text-align: center;">", "<div style=\"text-align: center\">", $t);
       $t=str_replace("</div>", "</div>", $t);
     
       // alignement à droite
       $t=str_replace("<div style="text-align: right;">", "<div style=\"text-align: right\">", $t);
       $t=str_replace("</div>", "</div>", $t);
     
       // alignement justifié
       $t=str_replace("[justify]", "<div style=\"text-align: justify\">", $t);
       $t=str_replace("[/justify]", "</div>", $t);
     
       // couleur
       $t=str_replace("[/color]", "</span>", $t);
       $regCouleur="\[color= ?(([[:alpha:]]+)|(#[[:digit:][:alpha:]]{6})) ?\]";
       $t=ereg_replace($regCouleur, "<span style=\"color: \\1\">", $t);
     
       // taille des caractères
       $t=str_replace("[/size]", "</span>", $t);
       $regCouleur="\[size= ?([[:digit:]]+) ?\]";
       $t=ereg_replace($regCouleur, "<span style=\"font-size: \\1px\">", $t);
     
       // lien
       $regLienSimple="\[url\] ?([^\[]*) ?\[/url\]";
       $regLienEtendu="\[url ?=([^\[]*) ?] ?([^]]*) ?\[/url\]";
       if (ereg($regLienSimple, $t)) $t=ereg_replace($regLienSimple, "<a href=\"\\1\">\\1</a>", $t);
       else $t=ereg_replace($regLienEtendu, "<a href=\"\\1\" target=\"_blank\">\\2</a>", $t);
     
       // mail
       $regMailSimple="\[email\] ?([^\[]*) ?\[/email\]";
       $regMailEtendu="\[email ?=([^\[]*) ?] ?([^]]*) ?\[/email\]";
       if (ereg($regMailSimple, $t)) $t=ereg_replace($regMailSimple, "<a href=\"mailto:\\1\">\\1</a>", $t);
       else $t=ereg_replace($regMailEtendu, "<a href=\"mailto:\\1\">\\2</a>", $t);
     
       // image
       $regImage="\[img\] ?([^\[]*) ?\[/img\]";
       $regImageAlternatif="\[img ?= ?([^\[]*) ?\]";
       if (ereg($regImage, $t)) $t=ereg_replace($regImage, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t);
       else $t=ereg_replace($regImageAlternatif, "<img src=\"\\1\" alt=\"\" border=\"0\" />", $t);
     
       return $t;
    }

  2. #2
    Membre chevronné

    Avatar de Deepin
    Homme Profil pro
    Ingénieur - Chef de projet Modélisation/Simulation
    Inscrit en
    Avril 2004
    Messages
    3 164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Ingénieur - Chef de projet Modélisation/Simulation
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 164
    Par défaut
    Moi je l aurais mis au niveau ou tu reçoit ta variable post !!!
    au debut du fichier que tu definis dans l'attribut action de ton post.
    A++

  3. #3
    Membre éclairé Avatar de The Nux
    Profil pro
    Inscrit en
    Février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 79
    Par défaut
    Ta fonction n'est pas bonne par ce que elle n'oblige pas que les balises soient fermées, donc ça peut causer des gros gros bugs d'affichage...

    Et pour le positionnement, il faut traiter le texte avec cette fonction juste avant de l'afficher. Je vois pas ce que tu veux dire par remplacer le textarea...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 100
    Par défaut
    Merci de vos réponses!

    The Nux aurais tu la même fonction qui force à fermer les balises?

    Le truc c'est que j'aimerais utiliser la fonction BBCode dans le code de l''éditeur de texte... Sinon ca me fout la merde dans mes autres pages....

    Vous avez une solution? Merci encore!

  5. #5
    Membre éclairé Avatar de The Nux
    Profil pro
    Inscrit en
    Février 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 79
    Par défaut
    Question fonction BBCode j'ai rien à te conseiller que j'ai testé personellement, mais les fonctions bbcode c'est pas ça qui manque. Après un tour sur phpclasses.org, cette classe m'a l'air pas mal : http://www.phpclasses.org/browse/package/951.html et celle ci encore mieux : http://www.phpclasses.org/browse/package/1379.html

    Et si j'ai bien compris tu veux rajouter des boutons BBCode à l'éditeur de texte ?

  6. #6
    Membre émérite

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Par défaut
    Visiblement, il suffit d'utiliser la fonction comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = bbcode($_POST['textarea'])
    Bien sur, il faut corriger la clef du tableau $_POST pour qu'elle corresponde au champs de saisie du formulaire, et utiliser cela dans la page d'action de ce dernier.
    Par contre, il n'y a aucune protection contre le XSS javascript.

    Note : comme precise dans le manuel php.net/str_replace, on peut tres facilement utiliser des tableaux comme arguments.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/12/2007, 07h58
  2. Fonction dans sous formulaire
    Par Junior_jef dans le forum IHM
    Réponses: 18
    Dernier message: 25/06/2007, 14h17
  3. Réponses: 5
    Dernier message: 07/09/2006, 12h33
  4. Positionner des éléments dans un formulaire
    Par Choupinou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 20/07/2006, 16h36
  5. saisir une fonction dans un formulaire
    Par arnogef dans le forum IHM
    Réponses: 14
    Dernier message: 12/12/2005, 10h40

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