Get ảnh từ 1 trang web bất kỳ bằng php

Nay đi làm được ông anh trên cty bảo tìm cách get ảnh từ 1 trang web bất kì bằng cách sử dụng regex trong PHP, mà em chưa có hướng giải quyết vấn đề này như thế nào, có ai có thể tư vấn giúp em đc ko ạ

  1. Lấy nội dung trang web bằng HTML.
  2. Dùng RegEx để tách các thẻ <img> ra và lấy src.

Không có tác dụng với các trang web tải nội dung bằng Js như DNH, mã nguồn từ Discourse.

5 Likes
echo '<h1>Bài 4: Kết hợp hàm php và regex để viết script lấy tất cả ảnh trong 1 trang web bất kỳ.</h1>';

$regex = "/(http(s?):)([/|.|\w|\s|-])*\.(?:jpg|gif|png)/";
//$html = file_get_contents('https://www.shutterstock.com/vi/search/library');
$html = '<div class="container jumbotron mt-5">
                <h1 class="mb-4"><b></b></h1>
                <p>vào lúc</p>
                <img class="card-img-top" src="https://i.pinimg.com/736x/dc/5f/50/dc5f502fffc9a064bca7a7be5c8771b2.jpg">
                <div class="mt-5">
                {$content}
                </div>
            </div>';

if(preg_match_all($regex, $html, $matches)){
    print_r($matches[0]);
}

Mọi người cho em hỏi code này của em ở đoạn regex gặp vấn đề gì ạ nó lỗi như thế này

Error: **Warning** : preg_match_all(): Unknown modifier '|' in **D:\xampp\htdocs\project\bap_train\train_regex.php** on line **75**

Bạn phải thoát (escape) kí tự / bằng \/.

"/(http(s?):)([/|.|\w|\s|-])*\.(?:jpg|gif|png)/"
               ^

"/(http(s?):)([\/|.|\w|\s|-])*\.(?:jpg|gif|png)/"

Cơ mà đâu phải ảnh nào cũng có đuôi là jpg, gif hay png trên đường dẫn (URL) đâu.

3 Likes

à ra vậy, hay quá em ra đc kết quả rồi, cám ơn bác nhiều ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?