La suppression des styles en ligne à l'aide de php
Je suis à l'aide de php à la sortie de certains de texte riche. Comment puis-je éliminer les styles en ligne complètement?
Le texte sera collé directement de MS Word ou OpenOffice, et dans un qui utilise TinyMCE, un Riche éditeur de Texte qui vous permet d'ajouter le formatage HTML de base pour le texte.
Cependant je veux supprimer les styles en ligne sur le
balises (voir ci-dessous), mais de préserver la
balises elles-mêmes.
<p style="margin-bottom: 0cm;">A patrol of Zograth apes came round the corner, causing Rosette to pull Rufus into a small alcove, where she pressed her body against his. “Sorry.” She said, breathing warm air onto the shy man's neck. Rufus trembled.</p>
<p style="margin-bottom: 0cm;"> </p>
<p style="margin-bottom: 0cm;">Rosette checked the coast was clear and pulled Rufus out of their hidey hole. They watched as the Zograth walked down a corridor, almost out of sight and then collapsed next to a phallic fountain. As their bodies hit the ground, their guns clattered across the floor. Rosette stopped one with her heel and picked it up immediately, tossing the other one to Rufus. “Most of these apes seem to be dying, but you might need this, just to give them a helping hand.”</p>
- comme, de réécrire votre question! je ne comprends pas du tout
- Que fait votre entrée ressembler? Est-il le XHTML?
Vous devez vous connecter pour publier un commentaire.
J'ai rapidement mis cela ensemble, mais pour les "styles en ligne' (!) vous aurez besoin de quelque chose comme
(style=("|\Z)(.*?)("|\Z))
, mais seulement correspond à lastyle=""
partie.Ici est un preg_replace solution j'ai tiré de Crozin de réponse. Celui-ci permet d'attributs avant et après l'attribut de style de résoudre le problème avec les balises d'ancrage.
Utilisation HtmlPurifier
Vous pouvez utiliser des expressions régulières:
'
😉Ne pourriez-vous utiliser strip_tags et les laisser dans les balises que vous voulez par exemple
<p>, <strong>
etc?Pourquoi ne pas simplement remplacer les balises. Donc, vous devrez nettoyer les balises sans inline style.
Je trouve cette classe très utiles pour faire de la bande attributs (en particulier là où il y a de fou MS Word mise en forme tout au long du texte):
http://semlabs.co.uk/journal/php-strip-attributes-class-for-xml-and-html
Vous pouvez utiliser: $contenu = preg_replace('/style=[^>]*/', ", $contenu);
Je suis n'a besoin d'effacer le style dans les balises img et n'a résolu par ce code:
Vous pouvez également utiliser PHP Simple HTML DOM Parser, comme suit: