Fonction PHP : htmlToText()

Ici, vous pouvez voir (et copier/coller) le code complet de la fonction PHP htmlToText(). N'hésitez pas voter pour cette fonction si elle vous plaît ou si vous vouv en servez !

htmlToText() ajouté le 2009-07-04 15:15:00 par greg

function htmlToText($textonly) {
		$textonly = str_replace(array('<p>', '<P>'), "", $textonly);

		$textonly =preg_replace("/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/", "\n", $textonly);

		$returns = array('<br>', '<br/>', '<br />', '<br >','<BR >', '<BR>', '<BR/>', '<BR />', '</p>', '</P>', '<p />', '<p/>', '<P />', '<P/>', '</h3>', '</H3>', '</h4>', '</H4>', '</h5>', '</H5>', '</h6>', '</H6>', '</h1>', '</H1>', '</h2>', '</H2>');

		$textonly = str_replace($returns, "\n", $textonly);


	  	$textonly = preg_replace('/<a href="([^"]*)"[^>]*>([^<]*)<\/a>/i','${2} ( ${1} )', $textonly);

	  	$textonly = preg_replace('/<head>.*<\/head>/i', '', $textonly);

		$textonly = preg_replace('~&#x([0-9a-f]+);~ei', chr(hexdec("\\1")), $textonly);
		$textonly = preg_replace('~&#([0-9]+);~e', chr("\\1"), $textonly);

		$trans_tbl = get_html_translation_table(HTML_ENTITIES);
		$trans_tbl = array_flip($trans_tbl);
		$textonly = strtr($textonly, $trans_tbl);

		$textonly = strip_tags($textonly);

		return $textonly;
	 }

Voter pour cette fonction


Convertit du HTML en text en supprimant les balises HTML

Commentaires sur la fonctions php

syndrael 04/07/2009 à 16:32

Quid des Div, Table, Lu, Li, Script, et autres balises ?? L'idée est peut-être louable mais il faudrait à mon sens approfondir non ?

trop Drole 06/07/2009 à 01:28

J'ai plus court
(http://fr3.php.net/manual/fr/function.strip-tags.php)

strip_tags();

Greg 07/07/2009 à 13:12

Ah ah trop drôle !!!
j'adore la dernière ligne :
$textonly = strip_tags($textonly);
Celle ci suffisait amplement !!!!

hihiii 09/07/2009 à 04:11

effectivement cela peut être utile pour du php 2

Robin 09/07/2009 à 20:54

Un simple ereg replace peut suffire aussi, désolé mais ta fonction, c'est dix lignes pour rien.

$contenu = ereg_replace("<[^>]*>", "", $contenu);

Will 16/07/2009 à 07:27

Le strip_tags n'est pas du tout équivalent, en effet, il supprime trop de texte. Je n'ai pas de d'interpréteur PHP sous la main, pour autant, de mémoire, un texte avec des balises imbriquées ne passe pas. Seules les expressions régulières sont le salut de ce pb.
Enfin, l'extension 'ereg' devient peu à peu dépréciée au profit de 'preg'.

Voilou

Bat 14/10/2009 à 16:14

strip_tags suffit :)