Supprimer les balises html d'une source

Soyez le premier à donner votre avis sur cette source.

Snippet vu 32 057 fois - Téléchargée 27 fois

Contenu du snippet

Cette fonction renvoie le texte fourni en argument aprés avoir supprimé les balises HTML qu'il contenait.

Exemple:

$textesansHTML = stripHTMLtags($texteavecHTML);

Par contre, si votre texte est trés gros, pour éviter une trop grande utilisation de mémoire, je vous conseille de faire un passage par référence de l'argument en utilisant la deuxième fonction.

ATTENTION: cette fonction ne prend pô en charge des sources HTML compliqués comme ceux qui contiennent un entête HEAD ou du Javascript... Les balises SCRIPT vont disparaitre, mais pô le code Javascript lui-même !!!

Source / Exemple :


//Version avec argument passé par valeur
function stripHTMLtags($texte){
	//On retire le code HTML
	$mots = explode("<",$texte);
	$texte = "";
	$nbmots = count($mots);
	
	for ($m = 0; $m < $nbmots; $m++)
		{
		$mot = $mots[$m];
		$finbalise = strpos($mot,">",0);
		if ($finbalise > 0) { $mot = substr($mot,$finbalise+1); }
		$texte .= "$mot";
		}
		
	return $texte;
}

//Version avec argument passé par référence
function stripHTMLtags_byref(&$texte){
	//On retire le code HTML
	$mots = explode("<",$texte);
	$texte = "";
	$nbmots = count($mots);
	
	for ($m = 0; $m < $nbmots; $m++)
		{
		$mot = $mots[$m];
		$finbalise = strpos($mot,">",0);
		if ($finbalise > 0) { $mot = substr($mot,$finbalise+1); }
		$texte .= "$mot";
		}
}

Conclusion :


Je serais pô étonné que le PHP contienne deja cette fonction (en mieux)... Merci de m'en avertir ;op

A voir également

Ajouter un commentaire

Commentaires

Messages postés
10
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
8 novembre 2011

$html = strip_tags(html_entity_decode($html, ENT_NOQUOTES, 'UTF-8'));

Ça prend surement moins de temps que ta fonction ...
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

dis, pr tes 0.18s, tu as fais combien de test? 100, 1000, 10000 ? parce que si t'en as fait un c un peu faible non? :-)
Messages postés
296
Date d'inscription
lundi 2 septembre 2002
Statut
Membre
Dernière intervention
28 janvier 2008

Bin...je connaissais pô strip_tags :op

Par contre, jai testé ; ma tite fonction est plus rapide... Et même zi zest pô bocoup plus rapide (0.18s de moins avec un texte de 3 Ko environ), et que zest moins évolué que strip_tags, je préfére m'en servir :op

Car pour mon module d'envoi de newsletter (+ de 2500 abonnés) qui génère des mails en texte brut (pour 248 personnes) à partir de l'original en HTML (en moyenne 6 Ko)... Za me fais gagner une centaine de seconde de temps processeur !!! ...Et jai bloqué le serveur à 90s maxi de travail par script :o|

Ce qui me fais 10 requetes pour envoyer tous mes mails à la place des 12 quil faudrait en utilisant le strip_tags !!! :o(

Ya pô photos à l'arrivée, là ! ...2 clics de moins à faire à la fin du mois et 5mn de gagnées pour partir en weekend !!! :op
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

ça va revinc, ne le prends pas sur ce ton, tlm ne connaît pas toutes les fonctions. puis tu vas sur nexen, je préfère aller sur php.net perso, enfin question personnelle.

aussi, il n'est jamais inutile d'écrire soit même une fonction existante, ça permet de tuner. il a peut etre voulu écrire une qui lui permettre de retirer seulement certaines balises bien spécifiques.
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.