Hình ảnh hợp lệ: logo-3png-1752569761698.png
Hình ảnh không hợp lệ: static-fica-logo.1-0-1.2435f041ebf869641575.jpg
Hình ảnh không hợp lệ: static-dti-logo.1-0-1.bcb3ae7a10b2d69d8762.svg
Hình ảnh không hợp lệ: static-noivu-xahoi-logo.1-0-1.a4f3595fd7126fe8f384.svg
Hình ảnh hợp lệ: set-danh-trung-be-chua-nha-may-duong-hang-nghin-tan-mat-tran-ra-khuon-vien-2-edited-cropped-1777810121113.jpg
Hình ảnh hợp lệ: c17usaf-cropped-1777812967626.jpg
Hình ảnh hợp lệ: le-hoi-trang-an-3-cropped-1777808365447.jpg
Hình ảnh không hợp lệ: cau-vuot-cua-bien-chat-kin-xe1-edited-1777811160222.jpg?watermark=true
Hình ảnh hợp lệ: giao-thong-ha-noi-3-5thanh-dong-6-cropped-cropped-1777809649516.jpg
Hình ảnh hợp lệ: 7781365938423-ezgifcom-crop-1777637048001-1777738355949.gif
Hình ảnh hợp lệ: 60407e72-1a15-4ebd-a311-49af34db11f2-cropped-1755597172292.jpg
Hình ảnh hợp lệ: thumbnail-gif-1777795829598.gif
Hình ảnh hợp lệ: dsc04169-1777810359114.jpg
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E
Hình ảnh không hợp lệ: svg+xml;charset=utf-8,%3Csvg xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox%3D'0 0 150 100'%3E%3Crect x='0' y='0' width='100%' height='100%' style='fill:rgb(241, 245, 249)' %2F%3E%3C%2Fsvg%3E

<?php
// Lấy toàn bộ nội dung HTML từ trang báo điện tử Dân trí
$url file_get_contents('https://dantri.com.vn/');

// Khởi tạo đối tượng DOM để phân tích HTML
$doc = new DOMDocument(); // Tạo đối tượng DOM

// Bỏ qua các lỗi cú pháp HTML khi load (tránh cảnh báo)
libxml_use_internal_errors(true);

// Nạp nội dung HTML vừa lấy vào đối tượng DOM
$doc->loadHTML($url);

// Lấy tất cả các thẻ <img> trong tài liệu HTML
$images $doc->getElementsByTagName('img');

// Biểu thức chính quy kiểm tra file hình ảnh hợp lệ
$file_pattern '/^[a-zA-Z0-9_-]+\.(jpg|jpeg|png|gif)$/';

// Duyệt qua từng thẻ <img> để kiểm tra tên file ảnh
$count 0;
$maxCount 20;
foreach (
$images as $image) {
    
$count++;
    
/** @var DOMElement $image */       // Khai báo kiểu dữ liệu cho biến $image (PHPDoc)
    
    // Lấy đường dẫn (src) của ảnh
    
$src $image->getAttribute('src');
    
    
// Lấy tên file từ đường dẫn ảnh
    
$file_name basename($src); // basename() trả về phần tên file
    
    // Kiểm tra tên file có khớp với biểu thức chính quy không
    
if (preg_match($file_pattern$file_name)) {
        
// Hợp lệ thì in ra thông báo
        
echo "Hình ảnh hợp lệ: $file_name\n""<br>";
    } else {
        
// Không hợp lệ cũng in thông báo
        
echo "Hình ảnh không hợp lệ: $file_name\n""<br>";
    }
    if(
$count>=$maxCount){
        break;
    }
}
?>