Share Tool Get ảnh hàng loạt trên trang Web khác bằng PHP

Cập nhật ngày 15/03/2024
Lượt xem: 37

Chức năng: Get tất cả ảnh trên trang web và lưu link ảnh vào file txt, hỗ trợ các dạng link phổ biến như: /image.png, folder/image.png, //domain/image.png, full URL và ảnh dạng base64.

Lưu ý là code chạy có dùng curl nên yêu cầu hosting cũng phải hỗ trợ curl nhé

<!DOCTYPE html>
<html lang="vi">
<head>
	<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<title>Tool get ảnh hàng loạt trên trang web</title>
</head>
<body>
	<?php
	/* Tool get ảnh hàng loạt by RoSino18k */
	if (isset($_POST['url'])) {
    	$url = strip_tags($_POST['url']);
    
	
    	// get full source
    	$ch = curl_init();
    	curl_setopt_array($ch, array(
        	CURLOPT_USERAGENT => 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1',
        	CURLOPT_RETURNTRANSFER => 1,
        	CURLOPT_URL => $url
    	));
    	$html = curl_exec($ch);
    	curl_close($ch);
    
	
    
	
    
	
    	// get tất cả ảnh trên trang
    	preg_match_all('#<img.+?src="(.*?)"#is', $html, $all);
    
	
    	if (!isset($all[1][0])) {
        	echo 'Không có ảnh nào trên trang web';
    	} else {
        
	
        	$al = array_unique($all[1]); // xoá ảnh trùng lặp
        
	
        	foreach ($al as $pht) {
            	$pht = trim($pht);
            
	
            	// Nếu ảnh dạng //cudemvn.wap.sh
            	if (preg_match('#^//#s', $pht)) {
                	$cap[] = 'http:' . $pht;
                
	
                	// Nếu ảnh có dạng /image.png
            	} elseif (preg_match('#^/#is', $pht)) {
                	preg_match('#(https?://[^/]+)[/]?.*#i', $url, $matchu);
                	$cap[] = $matchu[1] . $pht;
                
	
                	// Nếu ảnh có dạng folder/image.png
            	} elseif (preg_match('#^[^(/)|(http)|(data:image)]#is', $pht)) {
                	$url   = rtrim($url, '/');
                	$tach  = explode('/', $url);
                	$bu    = array_pop($tach);
                	$cl    = str_replace($bu, '', $url);
                	$cap[] = $cl . $pht;
                
	
                	// Còn lại nếu ảnh dạng full URL và dạng base64
            	} else {
                	$cap[] = $pht;
            	}
        	}
        
	
        	// Chuyển mảng thành chuỗi cách nhau 2 dấu xuống dòng
        	$string = implode("\n\n", $cap);
        
	
        	// ghi tất cả link vào file txt
        	$file = 'total.txt';
        	file_put_contents($file, 'Site: ' . $url . "\n\n" . $string);
        	echo 'Đã get thành công <a href="' . $file . '">' . $file . '</a>';
    	}
	}
	?>

	<form method="post">
		<p>Nhập URL trang web:</p>
		<p><input type="url" name="url" style="width:80%;" placeholder="URL tới trang" required></p>
		<p><input type="submit" value="Khởi động"></p>
	</form>
</body>
</html>

Nguồn code bởi RoSino18k - cudemvn