Làm thế nào để lập trình lọc văn bản?


8

Tôi cần hiển thị một văn bản và áp dụng bộ lọc đã chọn cho nó. Văn bản được lưu bằng cách sử dụng text_formatloại trường.

Vì vậy, tôi biết văn bản gốc, tôi biết loại định dạng đã chọn nhưng tôi không biết cách thực sự lọc văn bản.

Làm thế nào tôi có thể lập trình lọc văn bản? Cảm ơn


2
Bạn có muốn làm điều này lập trình. Nếu có, hãy xem liên kết này: stackoverflow.com/questions/2959962/ cấp
BetaRide

hôm nay là một ngày tồi tệ Tôi đã sử dụng nó rất nhiều lần trước đây nhưng bây giờ tôi không thể nhớ được. Bạn có thể thêm điều này như một câu trả lời để tôi có thể chấp nhận nó?
Marius Ilie

Câu trả lời là ngắn gọn. Nó được chuyển đổi thành bình luận tự động :-(. Bạn vẫn có thể nâng cấp nhận xét ;-).
BetaRide

@BetaRide nếu bạn thêm một liên kết vào check_markup(), và cũng sao chép mô tả tóm tắt, bạn sẽ có câu trả lời hoàn toàn chấp nhận được (thậm chí tốt ) :)
Clive

Câu trả lời:


8

Bài đăng này trên stackoverflow mô tả cách thực hiện việc này theo chương trình.

Chỉ cần gọi check_markup và chuyển văn bản của bạn và id bộ lọc.

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

Chạy tất cả các bộ lọc được kích hoạt trên một đoạn văn bản.


Có một sự khác biệt giữa filter_idformat_id . check_markup()chấp nhận format_id và sẽ chạy tất cả các bộ lọc được áp dụng cho định dạng đó.
komlenic

4

Với check_markup()chức năng, bạn buộc phải sử dụng định dạng văn bản (định dạng văn bản = banch của bộ lọc).

Nếu bạn muốn chỉ sử dụng MỘT , bộ lọc chính xác không có định dạng bộ lọc đầy đủ (như: Chuyển đổi ngắt dòng thành HTML ) thì hãy sử dụng chức năng tùy chỉnh này.

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

Bạn có thể kiểm tra danh sách các bộ lọc có sẵn với dpm(filter_get_filters()).


1
Đây là một câu trả lời đúng!
Alex Skrypnyk

1
Điều này có thể làm việc cho một số bộ lọc, nhưng chỉ những bộ lọc đơn giản. Nói chung, quá trình gọi lại api.drupal.org/api/drupal/modules%21filter%21filter.api.php/ trộm có nhiều tham số hơn, bao gồm cả cài đặt bộ lọc. Ngoài ra còn có một cuộc gọi lại chuẩn bị.
AdamS
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.