喵喵笨兔 の 喵喵的家~遊戲天地 - 首頁(上版面)
喵喵笨兔 の 喵喵的家~遊戲天地 - 首頁(左版面)
首  頁 最新消息 遊戲攻略 遊戲影片 遊戲圖片 下載區 學習分享 留言板 FB粉絲團
 喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 不用資料庫,在網頁上隨機顯示某幾張不重覆圖片 & 產生幾個不重複的隨機數字

PHP 不用資料庫,在網頁上隨機顯示某幾張不重覆圖片 & 產生幾個不重複的隨機數字

 

不使用資料庫來達到隨機顯示某幾張不重覆圖片的 PHP 寫法

  1. 先在網頁上建立一個存放圖片的目錄。如:建立 gif 目錄。
  2. 圖片檔名以同名且有數字順序的方式來命名。如:a-1.jpg、a-2.jpg、a-3.jpg....的數字順序檔名。
  3. 使用 mt_rand() 函式來隨機產生一個數字,再代入 a-數字.jpg 即可。如: mt_rand(1,30),即是在1 到 30 隨機獲得一個數字。

範例:

  • 笨兔小站首頁的 slide 滑動視窗內的圖片,即是以此製作成隨機取出五張圖片來顯示,所以每次進站或重整所看到的圖片應都不相同。
  • 站內每個網頁左上方的遊戲人物圖,也是以此方式製作,所以您每次進同一頁面或重整,看到的人物圖應都不一樣!
  • 以下就拿笨兔首頁滑動視窗的亂數圖片的程式碼稍改一下來做說明。主要看紅色字部份,或直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^^ (當然您須有那些檔名的圖檔唄!)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 不需資料庫,在網頁上隨機顯示某張圖片 & 生成一定數量的不重複隨機數字</title> </head> <body> <?php
//笨兔在 gif/ 目錄下,放了檔名 slide-1.jpg ~ slide-36.jpg 的36張圖檔
$img1=mt_rand(1,36); //1到36亂數取出一個數字, 並以一半18來做判定依據
if($img1<=18){ //若隨機出現的數字<=18,則加某數來生成其它四個數字。(不會超過36為原則)
$img2=$img1+2;
$img3=$img1+7;
$img4=$img1+10;
$img5=$img1+16;
}else{
$img2=$img1-3; //若隨機出現的數字>18,則減某數來生成其它四個數字。(不會<=0為原則)
$img3=$img1-8;
$img4=$img1-12;
$img5=$img1-17;
}
?>
<div align="center">
顯示隨機產生的第1張圖:<img src="gif/slide-<?php echo $img1; ?>.jpg"><br>
顯示隨機產生的第2張圖:<img src="gif/slide-<?php echo $img2; ?>.jpg"><br>
顯示隨機產生的第3張圖:<img src="gif/slide-<?php echo $img3; ?>.jpg"><br>
顯示隨機產生的第4張圖:<img src="gif/slide-<?php echo $img4; ?>.jpg"><br>
顯示隨機產生的第5張圖:<img src="gif/slide-<?php echo $img5; ?>.jpg"><br>
</div>

</body> </html>

 

範例結果:您每次進來或重整所看到的圖應都會有所不同唄!^ ^

顯示隨機產生的第1張圖:
顯示隨機產生的第2張圖:
顯示隨機產生的第3張圖:
顯示隨機產生的第4張圖:
顯示隨機產生的第5張圖:

產生幾個不重複的隨機數字的 PHP 寫法

範例:程式碼如下,自行參研唄!^ ^ 主要看紅色字部份,或直接複製所有程式碼,另存成一個 php 檔來觀看唄 ^^

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>喵喵笨兔 の 喵喵的家~遊戲天地 - PHP 不需資料庫,在網頁上隨機顯示某張圖片 & 生成一定數量的不重複隨機數字</title> </head> <body> <?php
// array unique_rand( int $min, int $max, int $num ) 生成一定數量的不重複隨機數
// $min 和 $max: 指定隨機數的範圍, $num: 指定生成數量
function unique_rand($min, $max, $num) {
$count = 0;
$return = array();
while ($count < $num) {
$return[] = mt_rand($min, $max);
$return = array_flip(array_flip($return));
$count = count($return);
}
shuffle($return);
return $return;
}

$arr = unique_rand(1, 50, 15); //1~50,隨機生成15個不重覆的數字
sort($arr);

$result = '';
for($i=0; $i < count($arr);$i++){
$result .= '隨機生成的第'.($i+1).'個不重覆數字:'.$arr[$i].'<br>';
}
$result = substr($result, 0, -1);
echo $result;
?>

</body> </html>

 

範例結果:您每次進來或重整所看到的圖應都會有所不同唄!^ ^

隨機生成的第1個不重覆數字:3
隨機生成的第2個不重覆數字:4
隨機生成的第3個不重覆數字:6
隨機生成的第4個不重覆數字:8
隨機生成的第5個不重覆數字:12
隨機生成的第6個不重覆數字:13
隨機生成的第7個不重覆數字:14
隨機生成的第8個不重覆數字:15
隨機生成的第9個不重覆數字:16
隨機生成的第10個不重覆數字:17
隨機生成的第11個不重覆數字:24
隨機生成的第12個不重覆數字:27
隨機生成的第13個不重覆數字:28
隨機生成的第14個不重覆數字:39
隨機生成的第15個不重覆數字:41
笨兔隨手筆記於 2017/10/06

喵喵笨兔 の 喵喵的家~遊戲天地
http://vv0817.tk
http://vvv.lionfree.net
http://qo3op.asuscomm.com/vvv
https://uoedgpkhyfwzmd7zua8myg-on.drv.tw/vvv