web-dev-qa-db-ja.com

プログラムでテキストをどのようにフィルタリングしますか?

テキストを表示し、選択したフィルターをそれに適用する必要があります。テキストは、text_formatフィールドタイプを使用して保存されます。

つまり、元のテキストは知っています。選択した形式の種類はわかっていますが、実際にテキストをフィルター処理する方法がわかりません。

プログラムでテキストをフィルター処理するにはどうすればよいですか?ありがとう

8
Marius Ilie

これ stackoverflowへの投稿 は、これをプログラムで行う方法を説明しています。

check_markup を呼び出して、テキストとフィルターIDを渡すだけです。

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

テキストの一部に対して有効なすべてのフィルターを実行します。

8
BetaRide

check_markup()関数を使用すると、テキスト形式を使用する必要があります(テキスト形式=フィルターの分岐)。

[〜#〜] one [〜#〜]のみを使用する場合は、完全なフィルター形式なしの完全なフィルター(例:改行をHTMLに変換)次に、このカスタム関数を使用します。

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

使用可能なフィルターのリストはdpm(filter_get_filters())で確認できます。

4
sobi3ch