Để xây dựng một ứng dụng website chuyên nghiệp, các nhà phát triển web thường phải thực hiện thao tác lấy nội dung web (HTML/XML) từ các website khác để làm cho website của mình phong phú hơn và có những dữ liệu mới nhất. Chẳng hạn, bạn muốn có mục nội dung luôn cập nhật thông tin về thời tiết, giá vàng, tỉ giá ngoại tệ, giá trị chứng khoán mới nhất hay tin tức lĩnh vực nào đó. Thay vì bạn phải xây dựng các chức năng này cho web của mình bạn có thể sử dụng phương pháp bóc tách lấy nội dung từ web khác. Điều đó tiết kiệm công sức bạn phải thường xuyên cập nhật thông tin và không phải xây dựng module (plugin) từ đầu.

Nếu không thể tìm các định dạng này, bạn có thể bóc tách dữ liệu trực tiếp từ HTML nhưng phức tạp hơn và luôn phải thay đổi hàm lấy dữ liệu nếu website bạn lấy thay đổi giao diện.

Đang xem: Lấy dữ liệu từ website khác

Có 6 cách bạn có thể lấy nội dung web (HTML, XML, JSON) trong PHP được sử dụng mà bài viết này sẽ trình bày sau đây.

1. Dùng hàm file() trong PHP

Bạn có thể dùng hàm PHP trong HTML để thực hiện chức năng lấy dữ liệu từ URL nào đó. Ví dụ lấy dữ liệu từ website huannghe.edu.vn và hiển thị trên màn hình.

Ví dụ tiếp theo là lấy dữ liệu từ mục Số hóa của báo điện tử VnExpress với đường dẫn RSS.

*

*

“, $error->message; }} else {foreach ($xml->xpath(“https://channel/item”) as $items){ echo “link . “”>” . $items->title . “”;echo $items->description . “”;}}?>

2. Dùng hàm file_get_contents()

3. Dùng hàm fopen(), fread() và fclose

Ba hàm này có chức năng lần lượt là mở tập tin (nguồn dữ liệu), đọc nguồn dữ liệu, hiển thị và đóng tập tin (nguồn hiển thị). Bạn có thể lấy dữ liệu từ trang huannghe.edu.vn như sau:

4. Sử dụng cURL

Để sử dụng cURL, bạn cần phải kích hoạt chức năng này ở tập tin php.ini. Sau đó, bạn bỏ chú thích dòng này extension=php_curl.dll và cài đặt gói cURL ở Linux. Nếu bạn dùng gói XAMPP ở Windows, bạn làm theo các bước sau.

Xem thêm:

Bước 1

Tìm và mở 3 tập tin:

C:Program Filesxamppapacheinphp.iniC:Program Filesxamppphpphp.iniC:Program Filesxamppphpphp4php.ini

Bước 2

Bỏ chú thích (;) dòng sau ở tập tin php.ini.

;extension=php_curl.dllthành

extension=php_curl.dll

Bước 3

Sau đó khởi động server Apache và dùng hàm phpinfo() để kiểm tra cURL được kích hoạt hay chưa. Sau đây là ví dụ cách lấy.

5. Dùng hàm fsockopen()

Bạn cũng có thể dùng hàm fsockopen() để lấy dữ liệu từ nguồn web thông qua cổng 80.

Xem thêm:

6. Dùng thư viện snoopy

Ngoài các cách trên, bạn cũng có dùng thư viện snoopy. Bạn có thể tải snoopy ở địa chỉ https://sourceforge.net/projects/snoopy/.

fetch($url); // đọc nội dung $lines_string = $snoopy->results; // lưu theo các dòngecho $lines_string; // hiển thị dữ liệu?>Ngoài ra, cũng có vài cách khác để lấy dữ liệu từ web bằng PHP. Bài này chủ yếu trình bày các ví dụ cơ bản. Để bóc tách HTML, JSON hay XML ra dữ liệu cần thiết, bạn cần dùng một số kỹ thuật, hàm xử lý chuỗi, dữ liệu nữa để đáp ứng nhu cầu website thực tế. Chúc bạn may mắn!

Leave a Reply

Your email address will not be published. Required fields are marked *