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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: วิธีนำ bbcode VDO ออกจากเนื้อหาในโฑสต์ ของ phpbb

วิธีนำ 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&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 นั้น มีฟังชั่นที่ชื่อว่า

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

 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] ก็หายไปแล้วครับ

ข้างบน