Hiển thị hình ảnh ngẫu nhiên từ folder chỉ định bằng PHP

ảnh ngẫu nhiên, hoc php, php code, php tutorial, random image, thu thuat php

Là một webmaster bạn cần phải làm nhiều thứ cho trang web của bạn, và đoạn code mà mình sắp chia sẻ đây sẽ giúp bạn có thêm một kinh nghiệm cho hành trình trở thành 1 webmaster chuyên nghiệp của bạn. Đoạn code này giúp bạn lấy ngẫu nhiên hình ảnh từ một folder chứa hình ảnh của bạn.
Và đoạn code này như sau :

<?php

function getRandomFromArray($ar) {

mt_srand( (double)microtime() * 1000000 );

$num = array_rand($ar);

return $ar[$num];

}



function getImagesFromDir($path) {

$images = array();

if ( $img_dir = @opendir($path) ) {

while ( false !== ($img_file = readdir($img_dir)) ) {

// checks for gif, jpg, png

if ( preg_match("/(\.gif|\.jpg|\.png)$/", $img_file) ) {

$images[] = $img_file;

}

}

closedir($img_dir);

}

return $images;

}



$root = '';

// nếu folder images không phải là thư mục con của đường dẫn file thì bạn phải tạo thế này

//$root = $_SERVER['DOCUMENT_ROOT'];

$path = 'images/';



//lấy danh sách hình ảnh từ đường dẫn

$imgList = getImagesFromDir($root . $path);



$img = getRandomFromArray($imgList);



?>

Để sử dụng bạn đặt thẻ img này sau đây vào vị trí mà bạn muốn hiển thị

<img src=”<?php echo $path . $img ?>” alt=”” />

Nếu bạn muốn lấy nhiều hơn 1 bức hình thì các bạn có thể sử dụng hàm sau :

function getImageFromArray($ar,$num) {

$image = array();

for($i=0;$i<$num;$i++)

{

$image[$i] = $ar[$i];

}

return $image;

}

Và lấy hình bằng cách khai báo :

$img =  getImageFromArray($imgList,4);

Với 4 là số lượng hình mà chúng ta muốn lấy. Và để hiển thị ngoài trang web thì các bạn sử dụng như sau :

<img src="<?php echo $path . $img[0] ?>" alt="" />

<img src="<?php echo $path . $img[1] ?>" alt="" />

<img src="<?php echo $path . $img[2] ?>" alt="" />

<img src="<?php echo $path . $img[3] ?>" alt="" />

Còn nếu muốn lấy hết hình trong folder thì thay bằng đoạn code sau :

$n = count($imgList);

$img =  getImageFromArray($imgList,$n);

Và khi cần lấy hình thì chạy vòng lặp sau là được:

<?php for($i=0;$i<$n;$i++) { ?>

<img src="<?php echo $path . $img[$i] ?>" alt="" />

<?php } ?>

Đoạn code trên chỉ là câu lệnh lấy hình đơn giản, bạn nào có sáng kiến tốt hơn xin chia sẻ với mọi người nha. Mình mong có sự đóng góp của các bạn để hoàn thiện code tốt hơn.

 

 HỖ TRỢ TRỰC TUYẾN