สอน 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 บริการแปลงค่าเงินจากสกุลเงินทั่วโลก เราสามารถใช้คลาสนี้ในการไปดึงข้อมูลค่าเงินมาแสดงภายในเว็บไซต์ของเราได้ หรือแม้แต่การดึงข้อมูลฉลากกินแบ่งรัฐบาล ก็สามารถทำได้เช่นกัน