Hướng dẫn
Quảng cáo

Tải tất cả hình ảnh từ 1 trang web bằng PHP

Bài này sẽ hướng dẫn các bạn cách có thể tải về tất cả các hình ảnh của một trang web.

Để có thể tìm tải về tất cả hình ảnh của một trang web thì chúng ta cần phải tìm được đường dẫn ảnh đầy đủ của tất cả hình ảnh, sau đó tải về máy.

Để có thể tìm các hình ảnh trong website bằng PHP chúng ta có thể sử dụng một code PHP như ví dụ dưới đây:

Ví dụ

<?php
$url_image = $_GET['url'];
$homepage = file_get_contents($url_image);
preg_match_all("{<img\\s*(.*?)src=('.*?'|\".*?\"|[^\\s]+)(.*?)\\s*/?>}ims", $homepage, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo $val[2];
echo "<br>";
}
?>

Nhưng mã trên có một điểm không toàn diện đó là có rất nhiều ảnh được lưu trong thư mục gốc và không hiển thị tên miền . Ví dụ: nếu URL đã cho là www.domain.com thì URL của hình ảnh thu được là

<span>"/logos/vzn/2024/2ndlogo.png"</span>

và điều tôi cần là

<span>"www.domain.com/logos/vzn/2024/2ndlogo.png"</span>

Để làm được điều đó chúng ta sử dụng mã sau:

Ví dụ

$url_image = $_GET['url'];
$homepage = file_get_contents($url_image);
preg_match_all("{<img\\s*(.*?)src=('.*?'|\".*?\"|[^\\s]+)(.*?)\\s*/?>}ims", $homepage, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {

    $pos = strpos($val[2],"/"); 
    $link = substr($val[2],1,-1);
    if($pos == 1)
        echo "http://domain.com" . $link;
    else
        echo $link;
    echo "<br>";
}

Với mã code này chúng ta đã có thể có link ảnh đầy đủ.

Sau khi có link ảnh đầy đủ thì bạn làm theo hướng dẫn Sử dụng PHP để lưu hình ảnh từ URL để có thể lưu hình ảnh về máy.

Chúc các bạn thành công!

Bài viết này đã giúp ích cho bạn?

Bài viết mới

Advertisements