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

Marius Ilie
źródło
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.

BetaRide
źródło
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()).

sobi3ch
źródło
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