Tutorial Extract tất cả URL từ một Web Page sử dụng PHP

Thảo luận trong 'Lập trình web với PHP' bắt đầu bởi babyinternet, 15/8/16.

  1. babyinternet

    babyinternet Administrator

    Tham gia ngày:
    4/7/08
    Bài viết:
    4,643
    Đã được thích:
    1,545
    Điểm thành tích:
    113
    Nơi ở:
    [}{]e[][]
    Tìm và xuất các URL trên một trang web ra được sử dụng trong nhiều trường hợp, nhưng trường hợp thông thường và dễ thấy nhất là khi chúng ta tiến hành dựng sitemap cho website. Đoạn mã dưới đây sẽ giúp bạn làm điều đó dễ dàng.

    Nếu bạn nào đã biết cách sử dụng file_get_contents() rồi thì không cần phải nói nữa. Đối với bạn nào chưa biết thì mình nói nhanh là hàm này dùng để lấy nội dung của một website về. Chúng ta sử dụng biến $urlContent để lưu URL của trang web cần lấy nội dung và sử dụng DOM để đọc và tìm các URL trong đó.

    Đoạn mã chi tiết như sau:

    PHP:
    $urlContent file_get_contents('https://webmaster.vn');

    $dom = new DOMDocument();
    @
    $dom->loadHTML($urlContent);
    $xpath = new DOMXPath($dom);
    $hrefs $xpath->evaluate("/html/body//a");

    for(
    $i 0$i $hrefs->length$i++){
        
    $href $hrefs->item($i);
        
    $url $href->getAttribute('href');
        
    $url filter_var($urlFILTER_SANITIZE_URL);
        
    // validate url
        
    if(!filter_var($urlFILTER_VALIDATE_URL) === false){
            echo 
    '<a href="'.$url.'">'.$url.'</a><br />';
        }
    }
    Đoạn mã này dùng xuất ra màn hình. Bạn có thể lưu vào database và fetch tiếp tục từng trang để get các URL khách trên trang nếu muốn làm sitemap. Chú ý: chỉ lọc các URL của trang chính thôi nha.
     
  2. babyinternet

    babyinternet Administrator

    Tham gia ngày:
    4/7/08
    Bài viết:
    4,643
    Đã được thích:
    1,545
    Điểm thành tích:
    113
    Nơi ở:
    [}{]e[][]
    @pcm910 : vui lòng đọc kĩ box này là box nào dùm.
    Phán 1 câu xanh rờn như đúng rồi :confused:
     
  3. mrz0nelk

    mrz0nelk Lính mới

    Tham gia ngày:
    17/9/14
    Bài viết:
    21
    Đã được thích:
    0
    Điểm thành tích:
    1
    cảm ơn anh về bài viết. a cho e hỏi tại sao không dùng Curl để get content a nhi~. nếu dùng file_get_contents() trường hợp đường dẫn bị lổi hoặc không tồn tại thì đoạn code phía sau sẽ die rồi az`. thanks anh nhiều
     
Việc làm Việt Nam
Đang tải...

Chia sẻ trang này