Comment tronquer un texte tout en préservant les balises html? - PHP - Programmation
Marsh Posté le 27-05-2007 à 13:24:17
Une idée serait, à mon avis, de rechercher la
dernière occurence du caractère "<" dans ta
chaîne.
Ici, ce serait le "<" du "<strong>" (caractère 58) de :
Code :
|
Bon, donc tu sais que le dernier "<", c'est le 58.
Tu regardes le caractère 59.
Oh ! C'est un "s" !!! Ce n'est donc pas un "\"...
La balise n'est donc pas fermée.
Du coup, tu cherches le caractère ">" qui suit le
58e. Ici, c'est le 65e (à la fin du "<strong>" ).
Tu copies cette chaîne (du 58 au 65) à la fin
de ta chaîne en ajoutant un "\"...
Bon, je connais pas trop le PHP, mais le code
ressemblerait à ça en VB (à toi de transposer ! :-D)
Code :
|
Voilà, voilà !!! J'espère que ça va t'aider !
Alors là, le problème de cette méthode, c'est qu'elle
ne marche pas dans trois cas :
1. <balise1><balise2>Mon texte</balise1>
2. <balise1><balise2>Mon texte
3. <balise1>Mon texte</ba
Marsh Posté le 27-05-2007 à 13:55:45
Je ne sais malheureusement pas transposer du vb en php. N'y a-t-il pas plus simple et un peu moins long?
Marsh Posté le 27-05-2007 à 14:30:47
- Tu lis le texte
- A chaque balise ouvrante rencontrée, tu la mets sur le dessus d'une pile
- A chaque balise fermante rencontrée tu retire la balise ouvrante de la pile
Au moment ou tu veux arreter le texte, tu balance tout ce que t'as sur la pile en fermant les balises...
Problème : Le html doit absolument etre bien formaté (pas de balise orpheline), mais ca peut s'arranger en vérifiant à chaque balise fermante qu'elle ferme bien la dernière balise de la pile, etc.
Marsh Posté le 27-05-2007 à 11:35:59
Bonjour,
J'ai un texte relativement long à tronquer. Le texte est truffé de balises html et le script que j'ai trouvé sur le net ne préserve pas les balises.
Exemple :
Mon texte d'origine :
Après tronquage :
L'idéal serait d'avoir :
Voici le script que j'utilise :
Comment dois-je m'y prendre pour que le script prenne en compte les balises?
Merci de votre aide