Bagaimana pemrograman menyaring teks?


8

Saya perlu menampilkan teks dan menerapkan filter yang dipilih untuk itu. Teks disimpan menggunakan text_formattipe bidang.

Jadi saya tahu teks aslinya, saya tahu jenis format yang dipilih tetapi saya tidak tahu bagaimana sebenarnya menyaring teks.

Bagaimana saya bisa memfilter teks secara terprogram? Terima kasih


2
Apakah Anda ingin melakukan ini secara terprogram? Jika ya, lihat tautan ini: stackoverflow.com/questions/2959962/...
— BetaRide

itu hari yang buruk hari ini. Saya menggunakan ini berkali-kali sebelumnya tetapi saya tidak ingat sekarang. Bisakah Anda menambahkan ini sebagai jawaban agar saya dapat menerimanya?
— Marius Ilie

Jawabannya singkat. Itu bisa dikonversi menjadi komentar secara otomatis :-(. Anda masih dapat menambahkan komentar ;-).
— BetaRide

@BetaRide jika Anda menambahkan tautan ke check_markup(), dan juga menyalin deskripsi ringkasan, Anda akan memiliki jawaban (bahkan bagus ) yang bisa diterima :)
— Clive

Jawaban:


8

Posting ini di stackoverflow menjelaskan cara melakukan ini secara terprogram.

Panggil saja check_markup dan sampaikan teks dan id filter Anda.

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

Jalankan semua filter yang diaktifkan pada selembar teks.


Ada perbedaan antara filter_id dan format_id . check_markup()menerima format_id , dan akan menjalankan semua filter yang diterapkan ke format itu.
— komlenic

4

Dengan check_markup()fungsi Anda dipaksa untuk menggunakan format teks (format teks = banch of filter).

Jika Anda ingin menggunakan hanya SATU , filter yang tepat tanpa format filter lengkap (seperti: Konversi pemecah baris ke HTML ) kemudian gunakan fungsi khusus ini.

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

Anda dapat memeriksa daftar filter yang tersedia dengan dpm(filter_get_filters()).


1
Ini jawaban yang benar!
— Alex Skrypnyk

1
Ini mungkin bekerja untuk beberapa filter, tetapi hanya yang sederhana. Secara umum proses callback api.drupal.org/api/drupal/modules%21filter%21filter.api.php/… mengambil lebih banyak parameter, termasuk pengaturan filter. Ada juga yang menyiapkan callback.
— AdamS
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.