J'ai besoin d'afficher un texte et de lui appliquer le filtre choisi. Le texte est enregistré à l'aide de text_format
type de champ.
Je connais donc le texte d'origine, je connais le type de format choisi mais je ne sais pas comment filtrer le texte.
Comment filtrer du texte par programmation? Merci
Cette publication sur stackoverflow décrit comment procéder par programmation.
Appelez simplement check_markup et passez votre texte et l'identifiant du filtre.
check_markup($text, $format_id = NULL, $langcode = '', $cache = FALSE)
Exécutez tous les filtres activés sur un morceau de texte.
Avec la fonction check_markup()
, vous êtes obligé d'utiliser le format texte (format texte = bloc de filtres).
Si vous souhaitez utiliser uniquement UN , filtre exact sans format de filtre complet (comme: Convertir les sauts de ligne en HTML ) puis utilisez cette fonction personnalisée.
/**
* Custom function to use only ONE filter wightout full format.
*
* @param {string} $string String to filter.
* @param {string} $filter Filter name to use on $string
* @return {string} Filtered string.
*/
function filter($string, $filter) {
$filters = filter_get_filters();
$filter_autop = $filters[$filter];
return $filter_autop['process callback']($string);
}
Vous pouvez vérifier la liste des filtres disponibles avec dpm(filter_get_filters())
.