หัวข้อ: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 14:38:32 สวัสดีครับ ขอแนะนำตัวนิดหน่อย สำหรับสมาชิกใหม่ หรืออาจจะเก่า แต่เราไม่รู้จักกัน :-[
ตัวกระผมนั้น เพิ่งออกจากป่า ไปอยู่กับพระเจ้าตามาหลายปี ได้ผอบ (ผะ-อบ) จากพระเจ้าตามา วันนี้เลยจะมาแอบเปิดดูกัน ว่าข้างในมีอะไร ... :P คนละเรื่องแล้ว ... มาเข้าเรื่องกันดีกว่า ถ้าใครเป็นสาวก Line ก็คงเห็นบริการ Line Today (https://today.line.me) ที่จะมีข่าวอัพเดท ทุกวัน จากหลาย ๆ สำนัก ซึ่งก่อนหน้านี้จะเปิดเข้าดูได้เฉพาะในมือถือ แต่เดี๋ยวนี้ดีมีอ่านบนเว็บได้ สบายแฮ... ก่อนหน้าที่จะเปิดให้อ่านบนเว็บได้ ก็แอบคิดในใจ ทำไม ๆ ๆ เนื้อหาดี อัพเดทตลอดแบบนี้ เป็นสิ่งที่เราต้องการนักแล ทำไมไม่มีให้อ่านในเว็บ ... แต่แล้ว Line ก็เข้าข้าง เปิดบริการบนเว็บให้ ฮิฮิ... เสร็จโจร [สายเทานะเออ] เอาหล่ะ เกริ่นมาเยอะแล้ว สรุป เอาจะมีเขียนโปรแกรม PHP ง่าย ๆ เพื่อดึงเนื้อหาข่าวใน Line Today มาเป็นของเรา แล้วต่อจากนั้นจะเอาไปทำอะไรต่อได้อีกมากมายก่ายกอง แล้วแต่จะคิดได้ บทเรียนนี้จะเขียนไปเรื่อย ๆ อาจจะยาวหรือไม่ ก็ขึ้นกับอารมย์คนเขียน กับฟีดแบ็ค นะครับ เพราะมันสายเทา เนื้อหาจะแบ่งเป็นช่วง ๆ อาจจะต่อเนื่องบ้าง ไม่ต่อเนื่องบ้าง แต่จะเอามาทำเป็นสารบัญให้อีกที ถึงตอนนี้ ขอเสียงคนสนใจหน่อยครับ ว่ามีสัก 10 คนไหม ใครสนใจรบกวนปูเสื่อ รอไว้หน่อยครับ หนังกลางแปลงกำลังจะฉายแล้ว ปล. กระทู้นี้เหมาะกับ ผู้สนใจเขียนโปรแกรม PHP + MySQL ระดับเบื้องต้น ถึงกลาง เน้นเขียนง่าย ใช้ได้จริง บทที่ 1 เตรียมระบบให้พร้อม (2016/12/14) http://www.thaiseoboard.com/index.php/topic,386988.msg5243972.html#msg5243972 บทที่ 2 เริ่มการตัดตอน (2016/12/14) http://www.thaiseoboard.com/index.php/topic,386988.msg5244122.html#msg5244122 บทที่ 3 คัดเอาแต่เนื้อ (2016-12-15) http://www.thaiseoboard.com/index.php/topic,386988.msg5244489.html#msg5244489 หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: A-LAND ที่ 14 ธันวาคม 2016, 14:42:34 เสร็จโจร :wanwan007:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Shaytalay ที่ 14 ธันวาคม 2016, 14:46:46 +1
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: gd,lN ที่ 14 ธันวาคม 2016, 14:49:18 แบบนี้ อีกไม่นาน line today จะเปลี่ยนแปลงไปแน่ๆ ครับ ฮ่าๆ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: skscale ที่ 14 ธันวาคม 2016, 14:52:02 :wanwan020: :wanwan020: แหล่มเลย
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: itmaiz ที่ 14 ธันวาคม 2016, 14:53:10 ปูเสื่อรอแล้วกันขอรับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: maneemeena ที่ 14 ธันวาคม 2016, 14:53:16 เสียดายยัง +1 ไม่ได้ครับ ปูเสื่อรอ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: ITboy2555 ที่ 14 ธันวาคม 2016, 14:56:46 ..นั่งรอด้วยคน :wanwan020:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: sinomoney ที่ 14 ธันวาคม 2016, 14:57:09 สนใจครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: champooko1 ที่ 14 ธันวาคม 2016, 14:58:02 ปูเสื่อรอเลยครับผม :wanwan004: :wanwan004:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: deksamrong ที่ 14 ธันวาคม 2016, 15:06:57 ปูเสื่อรอครับ :wanwan022:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: theztru ที่ 14 ธันวาคม 2016, 15:32:52 น่าสนใจ เพราะ line today ก็เอามาจากที่อื่นอีกทีเหมือนกาน :wanwan035:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: MinZaA ที่ 14 ธันวาคม 2016, 15:34:33 +1 รอเลยครับ :wanwan020:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Nasir ที่ 14 ธันวาคม 2016, 15:37:41 รอด้วยคนครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: ad2002 ที่ 14 ธันวาคม 2016, 15:40:18 สนใจครับ ลงชื่อด้วย 1 คน :wanwan017:
+1 หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: musichost ที่ 14 ธันวาคม 2016, 15:44:42 น่าสนใจครับ :wanwan017:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: WP-design ที่ 14 ธันวาคม 2016, 15:45:23 สุดยอดมาก :wanwan019:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: aloha_ana ที่ 14 ธันวาคม 2016, 15:46:28 รอครับ กำลังจะทำเว็บข่าวพอดีเลย :wanwan003:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: ~ก๋วยเจ๋ง~ ที่ 14 ธันวาคม 2016, 15:48:04 รอครับ +1
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: xxxxxx554 ที่ 14 ธันวาคม 2016, 15:50:49 โอ้วติดตามรอ+1ครับ กำลังเริ่มทำเว็ปแนวข่าวอยู่พอดีเลยครับ :wanwan011:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: wutpro ที่ 14 ธันวาคม 2016, 15:56:14 +1 ครับผม
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: jamm ที่ 14 ธันวาคม 2016, 16:08:45 ต่อเลยครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: scripture ที่ 14 ธันวาคม 2016, 16:09:49 ตามๆ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: toffeesmen ที่ 14 ธันวาคม 2016, 16:10:55 +1 รอครับ :wanwan017: :wanwan017:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: ิbestacard ที่ 14 ธันวาคม 2016, 16:16:44 ตามครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: mochimarui ที่ 14 ธันวาคม 2016, 16:17:07 รอด้วยครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: kondam ที่ 14 ธันวาคม 2016, 16:19:19 ปูเสื่อรอดูว่าในผอบ มีอะไร :-[
ขอบคุณครับ :wanwan017: หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 16:27:31 บทที่ 1 เตรียมระบบให้พร้อม
ในการเขียนโปรแกรม PHP + MySQL สิ่งแรกที่จะต้องทำคือต้องมี server ที่มี PHP และ MySQL หรือถ้าใครมี Server ที่เช่าไว้อยู่แล้วก็ง่าย เขียนโค้ดโปรแกรมแล้วก็โยนไปที่ Server ได้เลย ในส่วนนี้รายละเอียดการใช้งานโฮสต่าง ๆ ก็หาอ่านเพิ่มเติมเอานะครับ ถ้าระบบพร้อมแล้ว ลองเขียนคำสั่ง PHP เพื่อตรวจสอบฟังก์ชั่นสำคัญที่เราจะใช้ในการดึงข้อมูลจากเว็บอื่นมานั่นคือ curl สร้างไฟล์ bot-01.php จากนั้นให้อัพโหลดขึ้นโฮสที่เตรียมไว้ โค๊ด: <?php คำสั่งด้านบนนี้ จะทำการดึงข้อมูลจาก url คือ https://today.line.me/th โดยมีการกำหนดรายละเอียด CURLOPT_RETURNTRANSFER = 1 คือให้ส่งค่ากลับเป็น string หรือข้อความ CURLOPT_SSL_VERIFYPEER = false ไม่ตรวจสอบ SSL Cert // เพื่อใช้งานใน localhost เพิ่มเติมจากท่าน Shaytalay CURLOPT_USERAGENT = ตัว User Agent ที่จะไปปรากฏที่ Server ของ url เป้าหมาย ตัวนี้สำคัญมาก สำหรับการสับขาหลอก server ควรใช้ user agent ที่มีคนใช้งานเยอะ ๆ หาได้จาก http://www.useragentstring.com/pages/useragentstring.php?name=Chrome จากนั้นเข้า url ที่เราอัพโหลดไฟล์ bot-01.php ขึ้นไป ตัวอย่างเช่น http://class.undergroundclass.com/linetoday/bot-01.php ถ้าระบบเรารองรับ จะเห็นหน้าข้อมูล Line Today ดังภาพ (http://class.undergroundclass.com/linetoday/images/01-01.jpg) จบบทที่ 1 ... โปรดติดตาม ตอนต่อไป ... หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Zeratul ที่ 14 ธันวาคม 2016, 16:32:11 ตามๆๆๆๆๆ :wanwan013:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: mytony ที่ 14 ธันวาคม 2016, 17:05:13 ปูเสื่อรอเลยครับผม
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: virussman ที่ 14 ธันวาคม 2016, 17:49:26 ว้าววว จดๆๆๆ :wanwan011:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Shaytalay ที่ 14 ธันวาคม 2016, 18:13:11 ทำไม ลองรัน ใน xampp ไม่ได้เลยครับ หน้าโล่งๆ เลย
//ได้แล้วครับ เป็นเพราะ Xampp ไม่รองรับ SSL โดยใส่โค้ดเพิ่ม โค๊ด: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: jennyty ที่ 14 ธันวาคม 2016, 18:33:15 ขอตามด้วยคนค่ะ :'(
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: sinomoney ที่ 14 ธันวาคม 2016, 19:26:09 บทที่ 1 เตรียมระบบ ผมทำผ่านแล้วครับ
รอบทต่อไป :wanwan017: หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: sbaydee ที่ 14 ธันวาคม 2016, 21:04:26 ขอร่วมแจมด้วยละกันนะครับ ผมเขียนแยกเนื้อหาต่างๆลงตัวแปรไว้แล้วเอาไปรัน ประยุกต์เพื่อเก็บลงฐานข้อมูลได้เลยครับ
http://www.stockcoder.org/2016/12/php-line-today.html หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 21:05:11 ทำไม ลองรัน ใน xampp ไม่ได้เลยครับ หน้าโล่งๆ เลย เยี่ยมครับ เดี๋ยวยัดเข้าโค้ดเพิ่มเติมให้ครับ สำหรับคนไม่มี server ไว้ลองใน localhost ได้//ได้แล้วครับ เป็นเพราะ Xampp ไม่รองรับ SSL โดยใส่โค้ดเพิ่ม โค๊ด: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: nuonly ที่ 14 ธันวาคม 2016, 21:05:43 ขอบคุณครับ :wanwan003:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Jaideejung007™ ที่ 14 ธันวาคม 2016, 21:30:44 น่าสนใจครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: thinktogether ที่ 14 ธันวาคม 2016, 21:47:24 แทงคิ้วครับ :wanwan017:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: sangsood7 ที่ 14 ธันวาคม 2016, 22:19:14 ติดตามด้วยคนครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 22:27:55 บทที่ 2 เริ่มการตัดตอน
ในบทที่ 1 เราสามารถดึงข้อมูลจาก Line Today มาได้แล้ว ซึ่งจะอยู่ในรูปแบบของภาษา html+javascript แต่ทั้งหมดนั้นมันก็คือข้อความยาว ๆ เท่านั้นเอง สิ่งต่อไปคือการนำข้อความที่ได้ มาตัดเอาเฉพาะส่วนที่เราต้องการ ซึ้งขันตอนนี้เราจะต้องเขียนคำสั่งในการตัดเอาส่วนที่เราต้องการจากข้อความทั้งหมดที่เรามี โดยจะตั้งชื่อว่า get_string_between() หน้าที่คือตัดเอาเฉพาะส่วนข้อความตรงกลาง จากข้อความหัวและท้ายที่เรากำหนดเข้าไป โค๊ด: <?php โดย function นี้ จะทำหน้าที่ง่าย ๆ ตัวอย่างเช่น ข้อความทั้งหมดคือ 0123456789 เราจะตัดเอาเฉพาะ 456 เราจะเอา 3 และ 7 เป็นตัวแบ่ง จะได้คำสั่งประมาณ get_string_between('0123456789','3','7'); $arr = explode($end,$string); // ตัดข้อความโดยใช้ explode โดยเอา ข้อความสุดท้ายที่เราต้องการเป็นตัวแบ่ง แล้วเก็บไว้ในตัวแปร array โดยข้อความด้านหน้าของตัวแบ่งจะอยู่ใน array ที่ 0 ข้อความที่อยู่หลังจะอยู่ array ที่ 1 (ถ้าตัวแบ่งมีหลายครั้งในข้อความ ก็จะเก็บใน array ตัวถัด ๆ ไป) จากตัวอย่างขั้นตอนแรกเราจะได้ $arr[0] = 0123456 $arr[1] = 89 ในที่นี่เราสนใจเฉพาะ $arr[0] เพราะเป็นส่วนที่เราต้องการ เพื่อไปตัดต่อในขั้นตอนที่ 2 $arr = explode($start,$arr[0]); ในลักษณะเดียวกัน เมื่อทำการ explode ก็จะได้ $arr[0] = 012 $arr[1] = 456 ซึ่งใน $arr[1] คือสิ่งที่เราต้องการ จึงส่งค่ากลับออกมาจาก function โดยการทำงานเป็นขั้นตอนอย่างนี้ $arr = explode($start,$string); // ตัดข้อความโดยใช้ explode โดยเอา ข้อความเริ่มต้นที่เราต้องการเป็นตัวแบ่ง แล้วเก็บไว้ในตัวแปร array โดยข้อความด้านหน้าของตัวแบ่งจะอยู่ใน array ที่ 0 ข้อความที่อยู่หลังจะอยู่ array ที่ 1 (ถ้าตัวแบ่งมีหลายครั้งในข้อความ ก็จะเก็บใน array ตัวถัด ๆ ไป) จากตัวอย่างขั้นตอนแรกเราจะได้ $arr[0] = 012 $arr[1] = 456789 ในที่นี่เราสนใจเฉพาะ $arr[1] เพราะเป็นส่วนที่เราต้องการ เพื่อไปตัดต่อในขั้นตอนที่ 2 $arr = explode($end,$arr[1]); ในลักษณะเดียวกัน เมื่อทำการ explode ก็จะได้ $arr[0] = 456 $arr[1] = 89 ซึ่งใน $arr[0] คือสิ่งที่เราต้องการ จึงส่งค่ากลับออกมาจาก function เมื่อเราได้ function ในการตัดข้อความที่เราต้องการแล้ว ก็นำมาประกอบร่างกับบทที่ 1 แต่จะจับบทที่ 1 เข้าไปใน function โดยตั้งชื่อว่า get_contents() จะได้โค้ดดังต่อไปนี้ โค๊ด: <?php เมื่อสร้าง function ไว้แล้วก็ทำการเรียกใช้งาน โดย function get_contents() จะทำหน้าที่ดึงข้อมูลจาก url ที่เราต้องการมาให้ จากนั้นใช้ function get_string_between() มาทำการตัดเอาเฉพาะส่วนที่เราต้องการ *** แต่ get_string_between มีข้อจำกัดอยู่ว่า คำที่จะเป็นจุด start แล้ว end จะต้องเป็นข้อความเดียวที่ปรากฏอยู่ในข้อความต้นฉบับทั้งหมด ห้ามมีซ้ำกันหลายที่ เพราะตัว get_string_between จะไปจับเอาเฉพาะคำแรกที่เจอเท่านั้น หากคำนั้นไปอยู่กลางข้อความที่เราต้องการ มันก็จะตัดเอาเฉพาะส่วนแรก คราวนี้เราลองมาตัดเอาเฉพาะ discription ของเว็บ Line Today กันดู โดยให้เรา view source หน้า Line today ขึ้นมาดูก่อน จะได้ตามภาพ (http://class.undergroundclass.com/linetoday/images/02-01.jpg) ดังนั้นในการกำหนด คำที่จะเอามาตัดส่วนหัวและท้าย ก็ควรเป็น <meta name="description" content=" และ โดย LINE TODAY"> เพราะค้นหาแล้วไม่มีส่วนที่ซ้ำกันอีกในข้อความทั้่งหมด ดังนั้นโค้ดทั้งหมดจะเป็นดังนี้ โดยให้สร้างไฟล์ bot-02.php แล้วใส่โค้ดนี้ลงไป โค๊ด: <?php จากนั้นลองรันไฟล์ bot-02.php (http://class.undergroundclass.com/linetoday/bot-02.php) จะได้ข้อความตามภาพด้านล่าง (http://class.undergroundclass.com/linetoday/images/02-02.jpg) ########################################## 2016-12-15 ปรับ function get_string_between() โค๊ด: <?php หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: ieiq ที่ 14 ธันวาคม 2016, 22:39:45 +1 ครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: beerqazasa ที่ 14 ธันวาคม 2016, 22:43:15 ทีเด็ด ขอบคุณครับ :wanwan017:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: dekdoo ที่ 14 ธันวาคม 2016, 22:45:34 จาก Function ข้างบน แบบนี้
โค๊ด: <?php ยกตัวอย่าง ข้อความที่ได้มาก่อนผ่าน Function คือ : 0123454678 แล้วเรียกแบบนี้ get_string_between('0123454678','3','7'); คำตอบคือได้ค่า $arr[1] = 456 ดังนั้นผมขอถามแบบนี้หน่อยครับ ยกตัวอย่าง ข้อความที่ได้มาก่อนผ่าน Function คือ : 0130454678 แล้วเรียกแบบนี้ get_string_between('0130454678','3','7'); คำตอบคือได้ค่า ? หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 22:51:48 จาก Function ข้างบน แบบนี้ แก้ไขนะครับ พิมพ์เลข 4 เกิน ตัวอย่างจะเป็น get_string_between('0123456789','3','7'); ได้ผลออกมาเป็น 456โค๊ด: <?php ยกตัวอย่าง ข้อความที่ได้มาก่อนผ่าน Function คือ : 0123454678 แล้วเรียกแบบนี้ get_string_between('0123454678','3','7'); คำตอบคือได้ค่า $arr[1] = 456 ดังนั้นผมขอถามแบบนี้หน่อยครับ ยกตัวอย่าง ข้อความที่ได้มาก่อนผ่าน Function คือ : 0130454678 แล้วเรียกแบบนี้ get_string_between('0130454678','3','7'); คำตอบคือได้ค่า ? แต่ถ้าเรียก get_string_between('0130454678','3','7'); คำตอบคือได้ค่า 04546 หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: dekdoo ที่ 14 ธันวาคม 2016, 22:54:33 ขอเสริมอีกนิดครับ ไม่อยากแก้ของเดิม
ถ้าค่าที่ get ได้มีการเปลี่ยนแปลงและได้เป็นดังนี้ 0133456789 จะตัดเอาค่า 456 ออกมา คำตอบคือ = Error ถูกหรือเปล่าครับ หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 22:55:36 ขอเสริมอีกนิดครับ ไม่อยากแก้ของเดิม อยู่ในข้อจำกัดของ get_string_between ดังที่แจ้งไว้ครับถ้าค่าที่ get ได้มีการเปลี่ยนแปลงและได้เป็นดังนี้ 0133456789 จะตัดเอาค่า 456 ออกมา คำตอบคือ = Error ถูกหรือเปล่าครับ อ้างถึง *** แต่ get_string_between มีข้อจำกัดอยู่ว่า คำที่จะเป็นจุด start แล้ว end จะต้องเป็นข้อความเดียวที่ปรากฏอยู่ในข้อความต้นฉบับทั้งหมด ห้ามมีซ้ำกันหลายที่ เพราะตัว get_string_between จะไปจับเอาเฉพาะคำแรกที่เจอเท่านั้น หากคำนั้นไปอยู่กลางข้อความที่เราต้องการ มันก็จะตัดเอาเฉพาะส่วนแรก หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 23:02:49 /// ทำไมต้อง fix ค่าที่มีแค่ครั้งเดียว อาจจะเกิด error ได้ไหม ถ้าเนื้อหาที่ดึงมามันมี่ส่วนที่เราต้องการซ้ำกัน ///
การใช้ค่า fix ก็มีข้อคำนึกแค่ว่า เราจะใช้ตัวไหน ต้องให้แน่ใจว่าเป็น static code ที่อยู่ใน html ที่ดึงมา ซึ่งถ้าไม่มีการแก้ไขโค้ดต้นฉบับ เนื้อหาที่ดึงมาก็มีโอกาศน้อยที่จะเปลี่ยนไป แต่ก็มีเหมือนกันที่เว็บต้นทางแก้ไขโค้ด เราก็ต้องแก้ไขตามไปอีกที นี่คือเส้นทางนะครับ หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 23:04:56 แต่หลักการที่ผมใช้นี้ ก็ทดสอบมาแล้ว ใช้งานได้ดีไม่มีการรเปลี่ยนแปลงตั้งแต่ สิงหาคม 59 แต่ก็ไม่แน่เขียนเรื่องนี้ยังไม่ทันจบอาจมีการเปลี่ยนแปลงเกิดขึ้นได้ :wanwan004:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 14 ธันวาคม 2016, 23:09:18 จริง ๆ มี function อีกตัวหนึ่งที่ใช้งานได้ดีในการตัดคำโดยเฉพาะ ก็สามารถใช้งานได้เช่นกัน
โค๊ด: <?php หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: nongwoonsen ที่ 15 ธันวาคม 2016, 04:08:33 ขอบคุณค่า รอ ติดตามตอนต่อไปจ้า :wanwan008:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Sakana ที่ 15 ธันวาคม 2016, 07:58:45 ขอบคุณครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: time999 ที่ 15 ธันวาคม 2016, 09:21:03 ขอบคุณมากๆครับ ต้องลองศึกษา
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 15 ธันวาคม 2016, 11:04:20 ปรับปรุง function get_string_between() เพื่อความสวยงาม
โค๊ด: <?php หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Nasir ที่ 15 ธันวาคม 2016, 11:28:50 ตามด้วยคนครับผม
ขอบคุณมากๆๆครับ หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: thaigopher ที่ 15 ธันวาคม 2016, 12:17:54 เก็บความรู้ครับ
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: gd_ab ที่ 15 ธันวาคม 2016, 13:32:26 ขอบคุณมากครับ ^^
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: zergolf37 ที่ 15 ธันวาคม 2016, 13:33:55 รอดูตอนจบครับ :wanwan003:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Shaytalay ที่ 15 ธันวาคม 2016, 15:35:44 ขอสอบถามครับ ถ้าอยากเขียนแบบ ไม่ใช้ \ ต้องทำยังไงหรอครับ
โค๊ด: $text = get_string_between($contents,"<meta name=\"description\" content=\"","โดย LINE TODAY\">"); หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 15 ธันวาคม 2016, 16:32:37 ขอสอบถามครับ ถ้าอยากเขียนแบบ ไม่ใช้ \ ต้องทำยังไงหรอครับ โค๊ด: $text = get_string_between($contents,"<meta name=\"description\" content=\"","โดย LINE TODAY\">"); แบบนี้ก็ได้ครับ อ้างถึง $text = get_string_between($contents,'<meta name="description" content="','โดย LINE TODAY">'); หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: skscale ที่ 15 ธันวาคม 2016, 16:39:10 ขอบคุณมากครับ ยังกับดูหนังภาคต่อเลย :wanwan024: :wanwan024:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Oxiam ที่ 15 ธันวาคม 2016, 17:00:14 ขอบคุณครับ แต่เสียวๆ ว่าหลังจากนี้ Line จะโดนถล่มหรือเปล่า :P
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: userhuman ที่ 15 ธันวาคม 2016, 17:04:37 ขอสอบถามนิดนึงนะครับ ว่าทำไมถึงใช้ CURL แทนที่จะใช้ DOM Document อะครับ
ถามเพื่อเป็นความรู้เฉยๆนะครับ :wanwan017: หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: OmegaBoss ที่ 15 ธันวาคม 2016, 17:23:18 น่าติดตามมากครับ :wanwan003:
หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 15 ธันวาคม 2016, 17:36:30 ขอสอบถามนิดนึงนะครับ ว่าทำไมถึงใช้ CURL แทนที่จะใช้ DOM Document อะครับ ถามเพื่อเป็นความรู้เฉยๆนะครับ :wanwan017: ทำงานคนละจุดประสงค์ครับ curl เป็นเหมือนโปรแกรมบราวเซอร์ ที่ทำงานตั้งแต่ต้นทางเพื่อขอข้อมูลจาก server ซึ่ง curl สามารถแปลงร่างเป็นอะไรก็ได้ (อาจจะเว่อร์ไปหน่อย แต่คือเหมือนหลอก server ว่าเป็นบราว์เซอร์ได้) เพื่อติดต่อกับ server เป้าหมาย แล้วเอาข้อมูลที่ response ออกมาจาก server มาใช้งาน DOM Document เป็นปลายทาง ที่ได้ข้อมูลมาแล้ว เอามาจัดการตามที่ต้องการ จริง ๆ ก็ใช้ curl ดึงข้อมูลมา แล้วใช้ DOM Document มาจัดการข้อมูลอีกที จะบอกว่าถ้าจะเขียน php เพื่อติดต่อกับ server อื่น curl คือพระเอกตัวจริง รายละเอียดลึก ๆ ลองหาข้อมูลดูครับ ผมก็พอใช้เป็น ^^ หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: powerpc ที่ 15 ธันวาคม 2016, 17:59:04 บทที่ 3 คัดเอาแต่เนื้อ
ในบทนี้จะเป็นการคัดกรองเอาเฉพาะส่วนที่เป็นสิ่งสำคัญ นั่นก็คือ url ของข่าวแต่ละข่าวในหน้า Line Today เพื่อที่เราจะเก็บข้อมูลข่าวทั้งหมดมาไว้ในกำมือของเราได้ กระบวนการก็ไม่ยุ่งยาก เพียงแต่ต้องสังเกตโค้ดต้นฉบับของ Line Today ว่าส่วนในหรือส่วนที่เราต้องการ โดยทำการ view code ดูจะได้ส่วนที่ต้องการดังภาพ (http://class.undergroundclass.com/linetoday/images/03-01.jpg) ส่วนนี้จะเป็นส่วนเนื้อหาของหน้า Line Today ที่เราสามารถตามสืบต่อไปได้ว่า ลิ้งไหนคืออะไร แต่เราจะทำการตัดเอาเฉพาะส่วนนี้มาก่อน โดยใช้ get_string_between() แต่ใครจะไม่ตัดก็ได้ เพราะขั้นตอนต่อไป จะสำคัญกว่านี้และทำหน้าที่ครั้งเดียวได้เลย แต่เอาเป็นว่าลองใช้ดูหน่อยจะได้คุ้นเคย คำสั่งคือ โค๊ด: $text = get_string_between($contents,"<script>var categoryJson =","</script>"); จากนั้นเราจะได้ส่วนของเนื้อหามาเก็บไว้ในตัวแปร $text แล้วก็เข้าสู่กระบวนการสำคัญคือ การคัดกรองเอาเฉพาะลิ้งที่เป็นข่าว ซึ่งมีรูปแบบประมาณนี้ โค๊ด: https://today.line.me/th/article/df7e6a27d63574ba146fbfc8526f6a197508b56784dbb57577e82d74f4426d82 โดยเราจะใช้ function พระเอกที่มีชื่อว่า preg_match_all() ซึ่งมีหน้าที่ตัดเอาเฉพาะส่วนที่เราต้องการ โดยอาศัยการกำหนดรูปแบบ regular expression ใครไม่รู้จักไปอ่านเพิ่มเอานะครับ โดยการใช้มีรูปแบบคำสั่งดังนี้ โค๊ด: preg_match_all ("/https://today.line.me/th/article/(.*)"/U", $text, $result); โดยใช้ $text เป็นข้อความทั้งหมด และ ผลที่ได้จะถูกเก็บใน $result ในรูปแบบ array ลองมาดูโค้ดเต็มๆ กัน โดยการสร้างไฟล์ bot-03.php แล้วใส่โค้ดดังนี้ โค๊ด: <?php เสร็จแล้วลองรันดู จะได้ผลลัพท์เป็น array ที่เก็บ url และ hash ของข่าวที่อยู่ใน Line Today นะเวลาปัจจุบันทั้งหมดออกมา http://class.undergroundclass.com/linetoday/bot-03.php (http://class.undergroundclass.com/linetoday/images/03-02.jpg) จบบทที่ 3 หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: Shaytalay ที่ 15 ธันวาคม 2016, 18:07:35 ขอสอบถามครับ ถ้าอยากเขียนแบบ ไม่ใช้ \ ต้องทำยังไงหรอครับ โค๊ด: $text = get_string_between($contents,"<meta name=\"description\" content=\"","โดย LINE TODAY\">"); แบบนี้ก็ได้ครับ อ้างถึง $text = get_string_between($contents,'<meta name="description" content="','โดย LINE TODAY">'); ขอบคุณครับ :wanwan017: :wanwan017: หัวข้อ: Re: สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step [สายเทา] เริ่มหัวข้อโดย: userhuman ที่ 15 ธันวาคม 2016, 18:10:36 ขอสอบถามนิดนึงนะครับ ว่าทำไมถึงใช้ CURL แทนที่จะใช้ DOM Document อะครับ ถามเพื่อเป็นความรู้เฉยๆนะครับ :wanwan017: ทำงานคนละจุดประสงค์ครับ curl เป็นเหมือนโปรแกรมบราวเซอร์ ที่ทำงานตั้งแต่ต้นทางเพื่อขอข้อมูลจาก server ซึ่ง curl สามารถแปลงร่างเป็นอะไรก็ได้ (อาจจะเว่อร์ไปหน่อย แต่คือเหมือนหลอก server ว่าเป็นบราว์เซอร์ได้) เพื่อติดต่อกับ server เป้าหมาย แล้วเอาข้อมูลที่ response ออกมาจาก server มาใช้งาน DOM Document เป็นปลายทาง ที่ได้ข้อมูลมาแล้ว เอามาจัดการตามที่ต้องการ จริง ๆ ก็ใช้ curl ดึงข้อมูลมา แล้วใช้ DOM Document มาจัดการข้อมูลอีกที จะบอกว่าถ้าจะเขียน php เพื่อติดต่อกับ server อื่น curl คือพระเอกตัวจริง รายละเอียดลึก ๆ ลองหาข้อมูลดูครับ ผมก็พอใช้เป็น ^^ โอ๊ว ขอบคุณครับ :wanwan017: :wanwan011: หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: googlerich ที่ 21 กันยายน 2019, 01:07:59 :wanwan003: ขอบคุณครับ
หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: Twenty-One ที่ 21 กันยายน 2019, 07:19:42 เจ๋งมากครับ ดึงข้อมูลจาก line มาเก็บ ไว้ใช้
ขอบคุณครับ :wanwan017: หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: kaimook002 ที่ 22 กันยายน 2019, 13:43:56 ขอบคุณค่ะ
หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: kaimook002 ที่ 22 กันยายน 2019, 14:51:01 ตามคะ
หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: gamekittituh ที่ 22 กันยายน 2019, 20:08:29 ติดตามครับ :wanwan003:
หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: smapan ที่ 27 กันยายน 2019, 11:57:42 (https://uppic.cc/d/5r8c)
:wanwan029: หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: seohomepro ที่ 27 สิงหาคม 2020, 14:42:20 สุดยอดดดด
หัวข้อ: Re: [บทที่ 3]สอนเขียน PHP ดึงข่าวจาก LINE TODAY เก็บลงฐานข้อมูล Step by Step[สายเทา] เริ่มหัวข้อโดย: acomthail ที่ 29 สิงหาคม 2020, 12:04:37 ใช้ไม่ได้แล้วหรอครับ
php curl https://today.line.me/th/v2/tab :wanwan044: |