欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP随机显示目录下的图片

程序员文章站 2022-06-17 18:11:08
...
  前言

  在不久前,推特上,@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 'PHP随机显示目录下的图片';

如果要通过这个函数变换页面背景的话,可以把最后一句改为:

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

  并用整段程序替换标签。
  如果需要多次调用此程序的话,可以写成一个函数,各位按需要改写。

  总结
  用PHP的方法来输出随机图片的好处是:
  1.维护简单,只需要控制目录里图片的数量。
  2.可以自定义文件类型,只要你有需要,改成随机输出一个Flash也行的
  3.可以自定义输出结果,换句话说,用在什么地方都行了
  4.改写成函数后功能更强大

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