프로그래밍 방식으로 텍스트를 필터링하는 방법


8

텍스트를 표시하고 선택한 필터를 적용해야합니다. 텍스트는 text_format필드 유형을 사용하여 저장됩니다 .

따라서 원본 텍스트를 알고 선택한 형식 유형을 알고 있지만 실제로 텍스트를 필터링하는 방법을 모르겠습니다.

프로그래밍 방식으로 텍스트를 필터링하려면 어떻게해야합니까? 감사


2
프로그래밍 방식으로이 작업을 수행 하시겠습니까? 그렇다면이 링크를보십시오 : stackoverflow.com/questions/2959962/…
BetaRide

오늘은 나쁜 날이었습니다. 나는 이것을 전에 여러 번 사용했지만 지금은 기억할 수 없었습니다. 이 답변을 답변으로 추가하여 수락 할 수 있습니까?
마리우스 일리

대답은 짧습니다. 주석 자동 변환 :-(. 당신은 여전히 ​​주석을 상향 조정할 수 있습니다 ;-).
BetaRide

@BetaRide 당신에 대한 링크를 추가 할 경우 check_markup(), 또한 개요 설명 복사, 당신은 완벽하게 허용 (심지어해야 좋은 ) 대답 :
클라이브

답변:


8

게시물은 프로그래밍 방식으로 수행하는 방법을 설명합니다.

check_markup을 호출 하고 텍스트와 필터 ID를 전달하십시오.

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

한 텍스트에서 모든 활성화 된 필터를 실행하십시오.


filter_idformat_id 사이에는 차이가 있습니다 . format_id를check_markup() 받아들이고 해당 형식에 적용된 모든 필터를 실행합니다.
komlenic

4

check_markup()기능 당신이 사용하는 텍스트 형식 (텍스트 형식 = 필터의 banch)을 강요하고 있습니다.

만 사용하려면 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()).


1
정답입니다!
Alex Skrypnyk

1
일부 필터에서는 작동하지만 간단한 필터에서만 작동합니다. 일반적으로 프로세스 콜백 api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… 는 필터 설정을 포함하여 더 많은 매개 변수를 취합니다. 준비 콜백도 있습니다.
AdamS 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.