วิธีกรองข้อความโดยทางโปรแกรม?


8

ฉันต้องการแสดงข้อความและใช้ตัวกรองที่เลือกกับมัน ข้อความถูกบันทึกโดยใช้text_formatประเภทฟิลด์

ดังนั้นฉันรู้ข้อความต้นฉบับฉันรู้ประเภทรูปแบบที่เลือก แต่ฉันไม่ทราบวิธีการกรองข้อความจริง

ฉันจะกรองข้อความโดยทางโปรแกรมได้อย่างไร ขอบคุณ


2
คุณต้องการทำสิ่งนี้โดยทางโปรแกรมหรือไม่ ถ้าใช่ลองดูที่ลิงค์นี้: stackoverflow.com/questions/2959962/…
BetaRide

มันเป็นวันที่ไม่ดีวันนี้ ก่อนหน้านี้ฉันเคยใช้มาหลายครั้ง แต่ตอนนี้ฉันจำไม่ได้แล้ว คุณสามารถเพิ่มสิ่งนี้เป็นคำตอบเพื่อให้ฉันยอมรับได้หรือไม่
Marius Ilie

คำตอบคือสั้น มันได้รับการแปลงเป็นความคิดเห็นโดยอัตโนมัติ :-( คุณยังสามารถโหวตความคิดเห็น ;-) ได้
BetaRide

@BetaRide หากคุณเพิ่มลิงก์ไปcheck_markup()ยังและคัดลอกคำอธิบายสรุปคุณจะได้คำตอบที่ดี (แม้จะดี ) :)
Clive

คำตอบ:


8

นี้โพสต์ใน StackOverflowอธิบายวิธีการทำเช่นนี้โปรแกรม

เพียงแค่เรียกcheck_markupและส่งข้อความและรหัสตัวกรองของคุณ

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

เรียกใช้ตัวกรองที่เปิดใช้งานทั้งหมดบนข้อความ


มีความแตกต่างระหว่างการเป็นfilter_idและformat_id check_markup()ยอมรับformat_idและจะเรียกใช้ตัวกรองทั้งหมดที่ใช้กับรูปแบบนั้น
komlenic

4

ด้วยcheck_markup()ฟังก์ชั่นคุณจะต้องใช้รูปแบบข้อความ (text format = banch ของตัวกรอง)

หากคุณต้องการใช้เพียงหนึ่งตัวกรองที่แน่นอนโดยไม่มีรูปแบบตัวกรองแบบเต็ม (เช่น: แปลงตัวแบ่งบรรทัดเป็น 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.