dans mon application web PHP, j'ai un formulaire dataentry où les utilisateurs entreront des données en utilisant un éditeur de texte riche (FCKEditor im using) et enregistreront le balisage de l'éditeur à la DB table.Dans une autre page, je dois afficher les 200 premiers caractères du contenu (avec Voir plus de lien pour voir le tout). Alors quand je prends les 200 premiers caractères, le HTM Lmarkup est en train de casser parce que je peux manquer les balises de fermeture de certaines balises html déjà commencées. Comment puis-je me débarrasser de cela? Je sais que je peux utiliser strip_tags pour supprimer tout le balisage HTML. Mais je veux le garder tel quel. Y at-il quelque chose que je puisse faire pour résoudre ce problème?PHP: balisage HTML lors de la prise des premiers 200 caractères
0
A
Répondre
2
Exécutez-le via HTMLTidy car cela pourrait aider. Par exemple, lorsque vous avez une balise de lien (a) ouverte mais pas fermée, cela peut vous aider à vous débarrasser du lien "saigner" vers l'élément suivant. Vous aurez toujours des problèmes si votre script coupe la chaîne à partir du milieu de la balise, un "< di". Ce n'est pas une solution infaillible et je ne compterais pas dessus.
La meilleure pratique consiste à traiter séparément la version "courte" du texte, en laissant l'utilisateur entrer dans un éditeur de texte séparé.
Vous devrez d'abord définir certains comportements: que se passe-t-il si la moitié d'une ligne de tableau correspond? Inclure la ligne? Laissez tomber la table Cela vaut aussi pour les listes ('ul',' ol', listes de définitions) ... Vous feriez peut-être mieux de supprimer toutes les balises sauf quelques-unes. – MvanGeest
MvanGeest a raison, ce qui explique probablement pourquoi WordPress supprime les tags des "previews". À court d'analyse pour des étiquettes spécifiques, et comme MvanGeest a dit, en écrivant la logique pour déterminer ce qu'il faut faire à propos des listes partielles, des tableaux, etc., il n'y a pas grand-chose à faire. –