如何使用PHP随机显示目录下的图片
网络整理 - 07-29
用JavaScript写的话,程序流程应该是:建立一个图片数组->随机选择数组里其中一个值->生成样式并写入body标签。可是用做的话,有以下缺点:
1.万一浏览器禁用了JS的话就失效了,而且写代码是需要考虑兼容性。
2.维护比较麻烦,图片的位置都存放在数组里。
于是我提议用PHP处理,可是我和她对PHP都是半桶水的,一时之间也想不出怎么做。今天时运高,看到一个PHP随机显示目录下图片的源码,学习一下,并分享之。
正文先看看原理:从一个目录里获取某类型文件的清单(用在WEB的话一般是jpg/gif/png)->通过随机函数选一个图片->输出代码。
PHP代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$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
'<img src="'.$img_folder.$image.'" border=0/>';
如果要通过这个函数变换页面背景的话,可以把最后一句改为:
1
2
echo
'<body style="backgroud-image:url("'.$img_folder.$image.'">';
</body>
并用整段程序替换标签。
如果需要多次调用此程序的话,可以写成一个函数,各位按需要改写。
总结用PHP的方法来输出随机图片的好处是:
1.维护简单,只需要控制目录里图片的数量。
2.可以自定义文件类型,只要你有需要,改成随机输出一个Flash也行的
3.可以自定义输出结果,换句话说,用在什么地方都行了
4.改写成函数后功能更强大
