Jak programowo filtrować tekst?


8

Muszę wyświetlić tekst i zastosować do niego wybrany filtr. Tekst jest zapisywany przy użyciu text_formattypu pola.

Znam więc oryginalny tekst, znam wybrany typ formatu, ale nie wiem, jak właściwie go filtrować.

Jak mogę programowo filtrować tekst? Dzięki


2
Czy chcesz to zrobić programowo? Jeśli tak, spójrz na ten link: stackoverflow.com/questions/2959962/…
— BetaRide

to był dzisiaj zły dzień. Używałem tego wiele razy wcześniej, ale teraz nie mogłem sobie przypomnieć. Czy możesz dodać to jako odpowiedź, abym mógł to zaakceptować?
— Marius Ilie,

Odpowiedź jest krótka. Został automatycznie przekonwertowany na komentarz :-(. Nadal możesz głosować za komentarzem ;-).
— BetaRide

@BetaRide, jeśli dodasz link check_markup(), a także skopiujesz opis podsumowania, otrzymasz całkowicie akceptowalną (nawet dobrą ) odpowiedź :)
— Clive

Odpowiedzi:


8

Ten post na Stackoverflow opisuje, jak to zrobić programowo.

Wystarczy wywołać check_markup i przekazać tekst i identyfikator filtru.

check_markup($text, $format_id = NULL, $langcode = '', $cache = FALSE)

Uruchom wszystkie włączone filtry na kawałku tekstu.


Istnieje różnica między filter_id i format_id . check_markup()akceptuje format_id i uruchomi wszystkie filtry zastosowane do tego formatu.
— komlenic

4

Za pomocą check_markup()funkcji musisz użyć formatu tekstowego (format tekstowy = zestaw filtrów).

Jeśli chcesz używać tylko JEDEN , dokładny filtr bez pełnego formatu filtra (np .: Konwertuj podziały wiersza na HTML ), użyj tej funkcji niestandardowej.

/**
 * 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);
}

Możesz sprawdzić listę dostępnych filtrów za pomocą dpm(filter_get_filters()).


1
To poprawna odpowiedź!
— Alex Skrypnyk

1
Może to działać w przypadku niektórych filtrów, ale tylko tych prostych. Ogólnie proces wywołania zwrotnego api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… zajmuje więcej parametrów, w tym ustawienia filtrów. Istnieje również przygotowanie oddzwaniania.
— AdamS
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.