TOP 6 Cách Lấy Dữ Liệu Từ Website Khác Bằng PHP
16/03/2020 21:00 | Luợt xem : 24
Hiện nay, những nhà phát triển website có nhu cầu lấy dữ liệu nhiều. Bởi lấy dữ liệu từ website khác sẽ làm cho website của bạn phong phú hơn. Hiểu được điều này, trong bài viết sau đây BKNS sẽ gửi đến bạn các phương pháp lấy dữ liệu từ website khác bằng PHP để bạn tham khảo. Hãy cùng theo dõi nhé.
Dưới đây là 7 cách lấy dữ liệu từ website khác bằng PHP đơn giản giúp bạn có một trang web phong phú hơn
Mục lục
1. Sử dụng thư viện snoopy
Bạn có thể download snoopy ở website sau: https://sourceforge.net/projects/snoopy/
<?php require('Snoopy.class.php'); // nhúng thư viện snoopy từ gói tải về $snoopy = new Snoopy; // tạo đối tượng $url = "http://www.dammio.com"; $snoopy->fetch($url); // đọc nội dung $lines_string = $snoopy->results; // lưu theo các dòng echo $lines_string; // hiển thị dữ liệu ?>
2. Sử dụng hàm fsockopen()
Hàm fsockopen() cũng là một cách để lấy dữ liệu từ website thông qua cổng 80:
<?php $fp = fsockopen("dammio.com", 80, $errno, $errstr, 30); // mở socket lấy dữ liệu từ server if (!$fp) { echo "$errstr ($errno) n"; } else { $out = "GET / HTTP/1.1rn"; $out .= "Host: t.qq.comrn"; $out .= "Connection: Closernrn"; fwrite($fp, $out); // lấy dữ liệu while (!feof($fp)) { echo fgets($fp, 128); // hiển thị dữ liệu } fclose($fp); } ?>
3. Sử dụng cURL
Để lấy dữ liệu từ website khác bằng PHP với cách dùng cURL, bạn cần kích hoạt chức năng này ở tập tin php .ini. Tiếp theo, bạn bỏ chú thích dòng này extension = php_curl.dll. Đồng thời cài đặt cURL ở Linux. Trong trường hợp bạn dùng gói XAMPP ở Windows, bạn thực hiện theo những bước sau đây:
Bước 1: Mở 3 tập tin sau:
- C:\Program Files\xampp\php\php4\php.ini
- C:\Program Files\xampp\php\php.ini
- C:\Program Files\xampp\apache\bin\php.ini
Bước 2: Dòng sau tập tin php.ini, bạn bỏ chú thích (;)
;extension=php_curl.dll
sang
extension=php_curl.dll
Bước 3: Bạn khởi động server Apache đồng thời sử dụng hàm phpinfo() để kiểm tra cURL đã được kích hoạt chưa. Dưới đây là ví dụ cách lấy dữ liệu từ website:
<?php $url='http://www.bkns.vn'; $ch=curl_init(); $timeout=5; // thời gian đợi để lấy dữ liệu curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $lines_string=curl_exec($ch); // lấy nội dung theo URL curl_close($ch); // giải phóng tài liệu sau khi lấy dữ liệu echo $lines_string; // hiển thị dữ liệu ?>
4. Sử dụng hàm close, fopen() và fread()
close, fopen() và fread() có chức năng là đóng tập tin (nguồn hiển thị), đọc nguồn dữ liệu và mở tập tin Bạn có thể lấy dữ liệu từ trang bkns như sau:
<?php $url='http://www.bkns.vn'; $handle = fopen($url,"rb"); // mở tập tin theo đường dẫn, "rb" có nghĩa là mở tập tin (đường dẫn) không phải là dạng văn bản. $lines_string=""; // đọc nội dung do{ $data=fread($handle,1024); if(strlen($data)==0) { break; } $lines_string.=$data; }while(true); fclose($handle); // đóng nguồn dữ liệu sau khi đọc xong echo $lines_string; // hiển thị dữ liệu kết quả ?>
5. Sử dụng hàm file_get_contents()
Bạn có thể sử dụng hàm file_get_contents() nhằm mục đích lấy nội dung web. Đầu tiên bạn cần kích hoạt chức năng allow_url_fopen nằm trong tập tin php.ini, bằng cách thiết lập dòng allow_url_fopen = On. Lưu ý, nếu dòng này không được thiết lập thì 2 hàm fopen và file_get_contents sẽ không làm việc.
<?php $url = 'http://www.bkns.vn'; $lines_string = file_get_contents($url); echo htmlspecialchars($lines_string); // hiển thị dữ liệu ?>
6. Sử dụng hàm file() trong PHP
Bạn có thể sử dụng PHP trong HTML để thực hiện chức năng lấy dữ liệu từ URL nào đó. Chẳng hạn lấy từ dữ liệu website bkns và hiển thị trên màn hình như sau:
<?php $url='http://www.bkns.vn'; // tạo biến url cần lấy $lines_array=file($url); // dùng hàm file() lấy dữ liệu theo url $lines_string=implode('',$lines_array); // chuyển dữ liệu lấy được kiểu mảng thành một biến string echo $lines_string; // hiển thị dữ liệu ?>
Vậy là bài viết trên, BKNS đã gửi đến bạn các cách lấy dữ liệu từ website khác bằng PHP. Hy vọng bài viết trên hữu ích đối với bạn. Nếu bạn còn bất cứ câu hỏi nào liên quan hãy để lại bình luận ở bên dưới để được hỗ trợ ngay nhé. Ngoài ra hãy theo dõi website https://www.bkns.vn/ để đọc được những bài viết hữu ích khác nữa nhé.