สอน codeigniter ดึงรูปทั้งหมดจากหน้าเว็บด้วย simple_html_dom
สอน codeigniter ดึงรูปทั้งหมดจากหน้าเว็บด้วย simple_html_dom
simple_html_dom เป็น php Class ที่ถูกพัฒนาขึ้นมาสำหรับการดึงข้อมูลจากหน้าเว็บและสามารถเข้าถึง Element ข้อมูลในหน้านั้น ๆ ทั้ง div class, id, attribute นั้นทำให้เราสามารถรู้ว่าแท็ก img แอททริบิวต์ src มีค่าและแสดงรูปอะไร
เราสามารถนำ simple_html_dom มาใช้งานร่วมกับ codeigniter ในลักษณะ third party ได้ ลองมาดูกันครับว่า จะสามารถใช้งานได้อย่างไร
ประโยชน์ของคลาส simple_html_dom
– ใช้โหลดข้อมูลจากหน้าเว็บไซต์ได้ทั้งหน้า
– สามารถเข้าถึงข้อมูลต่าง ๆ ในหน้าเว็บง่าย ๆ ในรูปแบบ Array Object
– เร็ว
ดาวน์โหลดและติดตั้ง simple_html_dom.php
1. ดาวน์โหลด simple_html_dom คลาส unzip และวางไว้ที่โฟลเด้อ application/third_party
2. สร้าง Controller ตั้งชื่อว่า HtmlController.php ในส่วนของ Construct ให้โหลดคลาสมาใช้งานดังนี้
class HtmlController extends CI_Controller { function __construct() { parent::__construct(); // โหลด simple_html_dom include APPPATH . 'third_party/simple_html_dom.php'; }
3. ในส่วนของ index ให้ประกาศใช้งาน simple_html_dom คลาสดังนี้
<?php class HtmlController extends CI_Controller { function __construct() { parent::__construct(); // โหลด simple_html_dom include APPPATH . 'third_party/simple_html_dom.php'; } function index() { $html = new Simple_html_dom(); // ประกาศใช้งานคลาส $html->load_file('http://www.codebee.co.th/labs/'); //เลือกโหลดเว็บไซต์ foreach ($html->find('img') as $element) { // ใช้เมธอด find ค้นหา img element echo $element->src . '<br>'; // แสดงค่าในแอททริบิวร์ src } } } ?>
4. และเมื่อเราทดสอบการทำงานโดยเปิดไปที่ HtmlController จะได้ Output เป็น path ของรูปทั้งหมดที่มีในหน้าเว็บ
onesignal-เว็บ-push-notification-6-730x410.jpg จากนั้นจะขึเนสถานะการลงแอปให้รอจนกว่าจะดำเนินการจนเสร็จ-730x410.png php-codeigniter-framework-730x304.png วิธีทำลิงค์เพิ่มเพื่อนโปรแกรม-line-730x410.png google-adword-ไฟล์-excel-730x410.jpg .......................
การใช้งานคลาสในลักษณะนี้นิยมนำไปใช้ในการดึงข้อมูลบางอย่างจากเว็บไซต์ที่ให้บริการข้อมูลสาธารณะที่ยังไม่มี API ให้ใช้งาน ตัวอย่างเช่น Google Currency บริการแปลงค่าเงินจากสกุลเงินทั่วโลก เราสามารถใช้คลาสนี้ในการไปดึงข้อมูลค่าเงินมาแสดงภายในเว็บไซต์ของเราได้ หรือแม้แต่การดึงข้อมูลฉลากกินแบ่งรัฐบาล ก็สามารถทำได้เช่นกัน