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

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

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

ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 2683
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

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

โพสต์โดย Ittichai_chupol » 21/06/2019 5:41 pm

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

ตัวอย่าง

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

โค้ด: เลือกทั้งหมด


<r>นามแฝง<br/><U><s>[u]</s>นามแฝง<e>[/u]</e></U><br/><VIDEO content="https://www.youtube.com/watch?v=0uV534RQ2r8&amp;list=RD0uV534RQ2r8&amp;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&amp;list=RD0uV534RQ2r8&amp;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 นั้น มีฟังชั่นที่ชื่อว่า

โค้ด: เลือกทั้งหมด

 preg_match_all()


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

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

โค้ด: เลือกทั้งหมด

 preg_match_all('/\<VIDEO (.*?)\<\/VIDEO>/', $row['post_text'], $sting_array);


$row['post_text'] = เนื้อหาของโพสต์
$sting_array = ตัวแปรที่จะเก็บผลลัพธ์

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

โค้ด: เลือกทั้งหมด

 str_replace()


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

โค้ด: เลือกทั้งหมด

 $text = str_replace($sting_array, ' ', $row['post_text']);


เพียงเท่านี้ เนื้อหาที่ถูกครอบ ด้วย bbcode [video][/video] ก็หายไปแล้วครับ

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 8 และ บุคคลทั่วไป 0 ท่าน