begin process at 2012 05 27 20:29:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaîne de caratère

 > SUPPRIMER LES BALISES HTML D'UNE SOURCE

SUPPRIMER LES BALISES HTML D'UNE SOURCE


 Information sur la source

Note :
Aucune note
Catégorie :Chaîne de caratère Niveau :Débutant Date de création :09/09/2003 Date de mise à jour :09/09/2003 19:48:31 Vu :30 565

Auteur : olid

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

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

  • //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";
  • }
  • }
//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


 Sources du même auteur

GÉNÉRER UN LOG AU FORMAT APACHE POUR FAIRE DES STATISTIQUES ...
RÉSUMER UN TEXTE SANS COUPER LES MOTS OU PHRASES
TEMPS ÉCOULÉ (DURÉE) ENTRE 2 DATES SOUS FORME LITTÉRAL NATUR...
RACCOURCIR INTELLIGEMMENT UNE URL POUR L'AFFICHAGE SUR UNE P...
AFFICHER UNE DATE-HEURE RÉCENTE DANS UN FORMAT NATUREL ET LI...

 Sources de la même categorie

ADRESSE ABSOLUE DE LA PAGE EN COURS, AVEC VARIABLES $_GET par Dariumis
Source avec Zip CLASSE D'OBJET DE RECHERCHE DE MOTS DANS DES TABLEAUX ET/OU ... par 8Tnerolf8
RÉCUPÉRER LES MINIATURES D'UNE VIDÉO YOUTUBE par tefa24600
Source avec Zip Source avec une capture CONVERTISSEUR DE NOMBRES EN TEXTE par macruz
Source avec Zip Source avec une capture CODAGE TEXTE >HTML, ISO, SPECIALCHARS, URL ET DECODAGE par Salva9473

Commentaires et avis

Commentaire de lumesh le 09/09/2003 20:23:08

$chaine = "&lt;a href='#'&gt;BOZO&lt;/a&gt;";

//te renveras: BOZO sans la balise ! ca vire les balises PHP et HTML.
echo $strip_tags($chaine);

Commentaire de olid le 09/09/2003 20:53:48

Merzi... d'ailleur, je venais de la découvrir dans une autre source récente juste aprés mon ajout :op

Par contre, compte tenu de sa simplicité, ma fonction est peut etre plus rapide (à verifier). Sinon, çà reste un bon exemple d'utilisation de la commande explode ! :o)

Commentaire de matrey le 09/09/2003 21:58:52

expressions régulières çà te dit pas qque chose ?

Commentaire de olid le 09/09/2003 22:53:43

Bin... si tu peux en donner une qui fait comme ma fonction (sans plus), za serait sympa car jy connais rien en ereg et je comprend rien quand jen vois une :o(

En comparant les 2 techniques, je devrais enfin comprendre :op

Commentaire de Kirua le 10/09/2003 07:55:32

en anglais:
http://www.phpbuilder.com/columns/dario19990616.php3
une collection:
http://www.regxlib.com/
en français mais plus long t moins clair:
http://www.phpfrance.com/forums/viewtopic.php?t=23229

voilà pr les expressions régulières :-)

Commentaire de revinc le 11/09/2003 13:43:59

t malin  toi tu connais aps strip_tags() ?

http://dev.nexen.net/docs/php/annotee/function.strip-tags.php?lien=striptags

Commentaire de Kirua le 11/09/2003 16:36:40

ç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.

Commentaire de olid le 11/09/2003 20:56:24

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

Commentaire de Kirua le 11/09/2003 21:01:01

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? :-)

Commentaire de Weedygamer le 14/04/2011 09:03:16

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

Ça prend surement moins de temps que ta fonction ...

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,281 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales