PHP隨機顯示目錄下的圖片_PHP教程

來源:互聯網
上載者:User
  前言

  在不久前,推特上,@doublechou(才女,大家follow之,部落格)正在做主題(現在她暫時用iNove了)。她當時想做一個隨機更換背景圖片的功能,用JavaScript寫的話,程式流程應該是:建立一個圖片數組->隨機播放數組裡其中一個值->產生樣式並寫入body標籤。

  可是用JS做的話,有以下缺點:

  1.萬一瀏覽器禁用了JS的話就失效了,而且寫代碼是需要考慮相容性。

  2.維護比較麻煩,圖片的位置都存放在數組裡。

  於是我提議用PHP處理,可是我和她對PHP都是半桶水的,一時之間也想不出怎麼做。今天時運高,看到一個PHP隨機顯示目錄片的源碼,學習一下,並分享之。

  本文

  先看看原理:從一個目錄裡擷取某類型檔案的清單(用在WEB的話一般是jpg/gif/png)->通過隨機函數選一個圖片->輸出代碼。

  PHP代碼如下:

Copy to Clipboard引用的內容:[www.bkjia.com]$imglist='';
//用$img_folder變數儲存圖片所在目錄,必須用“/”結尾
$img_folder = "images/tutorials/";

mt_srand((double)microtime()*1000);

//使用目錄類
$imgs = dir($img_folder);

//檢查目錄下是否有圖片,並產生一個清單
while ($file = $imgs->read()) {
if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))
$imglist .= "$file ";

} closedir($imgs->handle);

//把清單裡的項都放到一個數組裡
$imglist = explode(" ", $imglist);
$no = sizeof($imglist)-2;

//產生一個介於0和圖片數量之間的隨機數
$random = mt_rand(0, $no);
$image = $imglist[$random];

//輸出結果
echo '';

如果要通過這個函數變換頁面背景的話,可以把最後一句改為:

Copy to Clipboard引用的內容:[www.bkjia.com]echo '';

  並用整段程式替換標籤。
  如果需要多次調用此程式的話,可以寫成一個函數,各位按需要改寫。

  總結
  用PHP的方法來輸出隨機圖片的好處是:
  1.維護簡單,只需要控制目錄裡圖片的數量。
  2.可以自訂檔案類型,只要你有需要,改成隨機輸出一個Flash也行的
  3.可以自訂輸出結果,換句話說,用在什麼地方都行了
  4.改寫成函數後功能更強大

  轉自:http://blog.imbolo.com/

http://www.bkjia.com/PHPjc/364413.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/364413.htmlTechArticle前言 在不久前,推特上,@doublechou(才女,大家follow之,部落格)正在做主題(現在她暫時用iNove了)。她當時想做一個隨機更換背景圖片的功能,...

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.