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 :

Remettre les balises HTML après un strip_tags


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut Remettre les balises HTML après un strip_tags
    Bonjour,

    Je cherche à afficher les X premiers mots d'une phrase qui contient du code HTML. Pour l'instant, j'utilise la strip_tags() avec une petite fonction qui me permet de récupérer les mots entiers de la phrase et tout fonctionne parfaitement.

    Maintenant, je souhaiterais pouvoir réinjecter les balises HTML supprimées avec strip_tags() dans la phrase raccourcie, en prenant soin de refermer les balises qui sont éventuellement restées ouvertes.

    J'essaye de me battre avec les expressions régulières mais jusqu'à présent, le combat tourne en ma défaveur...

    Quelqu'un aurait-il une piste ?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    En gros tu cherches à rendre ton code plus court et plus propre c'est ça ?
    Tu pourrais nous montrer un exemple de ce que tu cherches à faire au final ? Parce que le truc de refermer les balises non fermées ça me parait assez tendu en fait (tout particulièrement pour différencier les balises "auto-fermantes" comme <br /> et les autres comme <p>...</p>.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Par exemple, j'ai une chaîne :
    <p><strong>Bonjour</strong>, voici une chaîne de caractères qui est <em>trop longue</em> pour ce que <strong>je veux en faire et j'aimerais la raccourcir.</strong></p>

    Avec ma fonction, j'obtiens :
    Bonjour, voici une chaîne de caractères qui est trop longue pour ce que je veux

    Et j'aimerais obtenir :
    <p><strong>Bonjour</strong>, voici une chaîne de caractères qui est <em>trop longue</em> pour ce que <strong>je veux</strong></p>

    Mon problème est de refermer les balises ouvertes (les balises <p> et <strong> dans ce cas précis).

  4. #4
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Ah ok, donc tu veux couper ta phrase à un endroit et fermer à ce moment là toutes les balises ouvertes précédemment (ce qui n'a rien à voir avec ce que j'avais compris )
    Pour faire ceci, il faut que utilises le fait que les balises ne peuvent pas se chevaucher : tu ne peux pas avoir un truc de ce style
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><em>ton paragraphe</p></em>
    Du coup il te suffit de gérer une pile :
    Lorsque tu rencontres une balise ouvrante, tu insères la balise dans la pile
    Lorsque tu rencontres une balise fermante, tu supprimes la dernière balise insérée dans ta pile.

    Arrivée à l'endroit où tu veux couper ta chaine, il suffit que tu vides ta pile et que tu fermes toutes les balises dans l'ordre dans lequel tu les sorts.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 24
    Points : 22
    Points
    22
    Par défaut
    Merci pour le tuyau, je vais tenter une approche comme ça.

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

Discussions similaires

  1. [RegEx] Supprimer les balises HTML
    Par hisy dans le forum Langage
    Réponses: 4
    Dernier message: 19/03/2006, 17h10
  2. remettre les balises apres un strip tags
    Par skin_1_2_3 dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 15h31
  3. Script pour enlever les balises html
    Par Scratch48 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2005, 17h16
  4. [XSL] conserver les balises html
    Par krappa dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/07/2005, 15h14
  5. forcer xsl à interpréter les balises html
    Par canal68 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 07/07/2005, 15h02

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