All pastes #441901 Raw Edit

Dcoupage de texte phpBB

public php v1 · immutable
·published 2007-04-15 22:21 UTC
rendered paste body
<?php// chaine à traiter, et recouper semblable au contenu de la bdd de phpBB$chaine = "TEST &lt;&gt; &quot;&#039; &eacute;&egrave;&agrave;&ugrave;&ograve; TEST";// cette chaine affiche en HTML : TEST <> "' éèàùò TEST// on traduit le HTML$chaine = un_htmlentities($chaine);// chaine contient donc litteralement : TEST <> "' éèàùò TEST// on peut donc la recouper sans risquer de couper un code HTML// la recoupe s'effectue si le texte fait plus de 150 caractèresif(strlen($chaine)>=150){	$chaine = substr($chaine,0,150); // recoupe du texte		// les 2 lignes suivantes servent à éliminer le mot qui a été tronqué lors de la précédente recoupe	$espace = strrpos($chaine,' '); // on cherche la position du dernier espace	$texte = substr($chaine,0,$espace).' ...'; // on garde seulement ce qui est avant cet espace et on ajoute des points de suspensions}// fin de la recoupe// reconversion en HTML (pour la sécurité)$chaine = htmlentities($chaine, ENT_QUOTES);// l'attribut ENT_QUOTES est là pour signifier que les apostrophes doivent également être traduitesecho $chaine;//////////////////////////////////////////////////////////////////////////////////////////////////////// declaration de la fonction un_htmlentities()/////////////////////////////////////////////////////////////////////////////////function un_htmlentities($string){	$trans_tbl = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES); // on récupère un tableau contenant les correspondances caractères => HTML		//correction de bug : le caractère ' doit être encoder en &#039; et non en &#39;    !!	$trans_tbl["'"] = '&#039;';	// pour voir le contenu du tableau, décommenter la ligne suivante :	// print_r($trans_tbl);		$trans_tbl = array_flip($trans_tbl); // on inverse le tableau : les valeurs deviennent des clés et inversement	return strtr($string, $trans_tbl); // chaque code HTML est remplacé par son équivalent}?>