วิธีนำ bbcode VDO ออกจากเนื้อหาในโฑสต์ ของ phpbb

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

Post Reply
User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 2988
Joined: 19/09/2018 10:33 am

วิธีนำ bbcode VDO ออกจากเนื้อหาในโฑสต์ ของ phpbb

Post by Ittichai_chupol » 21/06/2019 5:41 pm

- สำหรับ ผุ้ที่กำลังศึกษา สนใจ และพัฒนา เว็บบอร์ด phpbb อยู่นั้นคงน่าจะคุ้นเคยกับ คำว่า bbcode กันมาเเล้ว ซึ่ง bbcode ใน เว็บบอร์ด phpbb นั้นก็มีให้เลือกใช้อย่างมากแต่ bbcode ที่มีใช้งานกันส่วนก็มีเพียงไม่กี่ตัว และส่วนใหญ่ก็เป็น bbcode ที่มาพร้อมกับตัวติดตังอยู่ แต่ถ้าหาก มีผู้ที่มีความเข้าใจ ในการโครงสร้าง ก็สามารถที่จะสร้าง bbcode ขึ้นมทาใช้งานเองเลยก็ได้ ครับ
- แต่ทั้งนี้ในบางครั่ง ถ้าหากมีกรณีที่ผู้พัฒนา จะทำการสร้าง Extension เพื่อพึงดึงข้อมูลที่ผู้ใช้งานเว็บบอร์ด phpbb ได้ทำการโพสต์ไว้ แต่ไม่อย่างที่จะดึงเนื้อหา ที่ถูกครอบไว้ด้วย bbcode บางตัว มาแสดงก็สามารถที่จะตัดค่าที่อยู่ภายใน ของ bbcode ทิ้งออกไปได้ หรือ จะแทนทีค่านั้นก็สามารถที่ทำได้เช่นกัน ดังตัวอย่างอย่างจากนนี้

ตัวอย่าง

ผมได้ใช้งาน bbcode ที่สามรถแสดง วิด๊โอ จากการ นำลิงค์ ของ วิดีโอนั้นมาใส้ ใน bbcode [video][/video] ซึ่งผลลัพธ์ที่ได้เก็บลงในฐานข้อมูลก็คือ

Code: Select all


<r>นามแฝง<br/><U><s>[u]</s>นามแฝง<e>[/u]</e></U><br/><VIDEO content="https://www.youtube.com/watch?v=0uV534RQ2r8&list=RD0uV534RQ2r8&start_radio=1"><s>[video]</s><LINK_TEXT text="https://www.youtube.com/watch?v=0uV534R ... rt_radio=1">https://www.youtube.com/watch?v=0uV534RQ2r8&list=RD0uV534RQ2r8&start_radio=1</LINK_TEXT><e>[/video]</e></VIDEO><ATTACHMENT filename="Selection_999(1511).png" index="0"><s>[attachment=0]</s>Selection_999(1511).png<e>[/attachment]</e></ATTACHMENT><COLOR color="#40BFFF"><s>[color=#40BFFF]</s>นามแฝง<e>[/color]</e></COLOR><QUOTE><s>[quote]</s>นามแฝง<e>[/quote]</e></QUOTE><B><s>[b]</s>นามแฝง<e>[/b]</e></B></r>

ซึ่งถ้าหากดึงข้อมูลโพสต์มาตรงก้จะได้เนื้อหาเช่นนี้
ขึ้นตอนการตัดก็คือ จะเห็นว่าในเนื้อหาของโพสต์ทั้งหมด จะส่วนที่ถูกครอบด้วย เเท็ก <VIDEO></VIDEO> ซึ่งก็คือส่วนที่เราได้ bbcode [video][/video] ไว้นั้นเอง ดังนั้นถ้าต้องการจะตัดส่วนที่เป็น bbcode [video][/video] ออก ก็ควรที่จะเริ่มจากการหา เนื้อหา ที่อยู่ภายใต้ เเท็ก <VIDEO></VIDEO>

โดยใน php นั้น มีฟังชั่นที่ชื่อว่า

Code: Select all

 preg_match_all() 
การใช้งาน สามารถเข้าไปศึกษาได้จาก ที่นี้

โดยวิธีการใช้งานฟั่ชั่น preg_match_all() ในกรณี นี้คือ

Code: Select all

 preg_match_all('/\<VIDEO (.*?)\<\/VIDEO>/', $row['post_text'], $sting_array);
$row['post_text'] = เนื้อหาของโพสต์
$sting_array = ตัวแปรที่จะเก็บผลลัพธ์

ซึ่งเมื่อเราได้ค่าที่ต้องการมาแล้ว ก็ใช้ฟังชั่น

Code: Select all

 str_replace() 
เพื่อที่จะทำให้เนื้อหาส่วนที่ใช้งาน bbcode [video][/video] หรือ เเท็ก <VIDEO></VIDEO> หายไปนะครับ

Code: Select all

 $text = str_replace($sting_array, ' ', $row['post_text']); 
เพียงเท่านี้ เนื้อหาที่ถูกครอบ ด้วย bbcode [video][/video] ก็หายไปแล้วครับ

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “PHP Knowledge”

Who is online

Users browsing this forum: bankjittapol and 12 guests