Supprimer balises HTML

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer balises HTML

par cicom » 06 mai 2008, 20:34

Salut,
Ah c'était donc ça l'astuce! Je me suis cassé àfaire un convertisseur pour les accents et les br en preg replace etc etc pour que ca passe en xml, ok je note ca me sera surement utile merci!

par Cyrano » 05 mai 2008, 22:25

Pour une question de conformité avec la syntaxe XML. Certains caractères doivent être inclus sous la forme d'entités HTML : ainsi < s'écrira <, > sera écrit >, etc... et tu as en PHP la fonction htmlentities() qui fait ça très bien, à utiliser après striptags() évidemment :)

par cicom » 05 mai 2008, 21:32

Re,
Pourquoi ça?
Merci

par Cyrano » 05 mai 2008, 21:11

...j'utilise ça juste pour générer un flux rss
Donc un format XML : dans ce cas les entités HTML seront d'autant plus appropriées :)

par cicom » 05 mai 2008, 20:09

Salut,
Merci de votre précision mais j'utilise ça juste pour générer un flux rss à partir de news stockées dans la bdd, donc rien de très compliqué, aussi je ferai attention à ne pas utiliser de < ou de > dans mes news.
Merci à tous!

par Cyrano » 05 mai 2008, 16:18

Effectivement, ce cas poserait problème. Je dois dire que je ne me suis jamais trop posé la question parce que j'utilise systématiquement les entités HTML pour des symboles comme < ou > en mettant > ou < précisément pour éviter ce type de conflit. :-k

par nicolas » 05 mai 2008, 16:03

strip_tags() devrait être ta solution la plus simple :-k
Tu fais bien de douter. Ce n'est évidemment pas la bonne solution.
<?php
$texte = 'du texte avec un mot <b>en gras</b> et 3>2 et 5<4 <b> et la fin';
echo strip_tags($texte);
?>
affiche:
du texte avec un mot en gras et 3>2 et 5

La seule solution valable est à coup d'expression régulière. preg_replace() est ton amie.

par cicom » 04 mai 2008, 14:43

Salut,
Toujours aussi bon Cyrano! Exactement ce qu'il me fallait.
Merci à tous de m'avoir aidé je mets résolu.

par SpintroniK » 04 mai 2008, 13:35

Salut,

j'ai le souvenir d'un début de parseur HTML ici :
http://www.fpdf.org/fr/tutorial/tuto6.htm

évidemment, il est à modifier et à compléter, mais comme début c'est déjà pas mal !
Il y a aussi des compléments dans les scripts exposés sur le site fpdf.org

par Cyrano » 04 mai 2008, 12:33

strip_tags() devrait être ta solution la plus simple :-k

par cicom » 04 mai 2008, 12:04

Salut,
Si tu mets la main (ou la souris) sur le lien en question n'hésite pas à le poster ici.
Si certains se rappellent de la méthode même recommandation.
Merci à tous!

par katagoto » 04 mai 2008, 11:48

Il me semble, qu'avec un bon parseur c'est facilement réalisable...
Par contre je ne me souvient plus où je l'ais vu ><

Supprimer balises HTML

par cicom » 04 mai 2008, 11:10

Bonjour à tous!
Ca faisait longtemps que je n'étais pas venu vous poser des questions (bon faut dire aussi en ce moment j'ai pas trop eu le temps de programmer...)
Alors dans le cadre de génération de flux RSS via PHP à partir d'une base de données j'aimerai savoir comment supprimer tout ce qui ressemble de près ou de loin à du html dans un texte.
J'ai bien dit supprimer et non quoter ou remplacer comme le feraient des fonctions type htmlentities()
Je pense qu'on peut faire ca en regex en supprimant tout ce qui est entre < et > les < et > compris mais je ne suis pas très fort en regex alors je viens demander votre aide, de plus, conscient qu'il ne faut pas réinventer la roue, je suis sûr que beaucoup d'entre vous s'y sont déjà penché...
Merci à tous!