Lấy hình ảnh từ nội dung html trong php

Trong khi phát triển website nhất là đối với các website dạng tin tức thì nhu cầu tách ảnh từ nội dung bài viết được trình bày dưới dạng các thẻ html, css và javascript nằm ngổn ngang là vô cùng cần thiết. Để tách ảnh từ nội dung bài viết đã được trình bày dạng mã html chúng ta sử dụng hàm preg_match_all với cú pháp như sau:
preg_match_all(‘/< *[img][^>]*[src] *= *[“‘]{0,1}([^”‘]*)/i’,$str_html,$arr_images);
Trong đó:
$str_html: Là biến chứa mã html nguồn có chứa ảnh cần tách ra.
$arr_images: Là biến dạng mảng chứa tất cả các hình ảnh có trong $str_html.
Chú ý:
Nếu trong $str_html có n hình ảnh thì mảng $arr_images sẽ có n+2 phần tử sau khi thực thi hàm preg_match_all ở trên. Vì hàm preg_match_all dùng 2 phần tử đầu để chứa dấu “..” – Thư mục góc và “.” – Thư mục cha trực tiếpVì thế các phần tử ảnh sẽ được chứa từ vị trí thứ 2 (lấy theo cách tính chỉ số vị trí của mảng trong php) của mảng chở về sau.

Ví dụ:

<?php
$arr_images=””;
$str_html=”<p>
<img src=”hinhanh/hinh1.jpg”/><span>Hình 1</span>
<img src=”hinhanh/hinh2.jpg”/><span>Hình 2</span>
</p>”;
preg_match_all(‘/< *[img][^>]*[src] *= *[“‘]{0,1}([^”‘]*)/i’,$str_html,$arr_images);
?>

Khi đó các phần tử trong mảng $arr_images sẽ là:

$arr_images[0] là “..”
$arr_images[1] là “.”
$arr_images[2] là “hinhanh/hinh1.jpg”
$arr_images[3] là “hinhanh/hinh2.jpg”

Hy vọng hữu ích với bạn!

Nosomvo

Chia sẻ lên
WEB5k - Thiết kế website giá rẻ chuẩn SEO

Hãy bình luận đầu tiên

Để lại một phản hồi