PHP 获取目录下的图片并随机显示的代码


Posted in PHP onDecember 28, 2009

当时想做一个随机更换背景图片的功能,用JavaScript写的话,程序流程应该是:建立一个图片数组->随机选择数组里其中一个值->生成样式并写入body标签。
可是用JS做的话,有以下缺点:
1.万一浏览器禁用了JS的话就失效了,而且写代码是需要考虑兼容性。
2.维护比较麻烦,图片的位置都存放在数组里。
于是我提议用PHP处理,可是我和她对PHP都是半桶水的,一时之间也想不出怎么做。今天时运高,看到一个PHP随机显示目录下图片的源码,学习一下,并分享之。 

先看看原理:从一个目录里获取某类型文件的清单(用在WEB的话一般是jpg/gif/png)->通过随机函数选一个图片->输出代码。
PHP代码如下:

$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/" alt="" />';

如果要通过这个函数变换页面背景的话,可以把最后一句改为:
echo '<body style="background-image:'.$img_folder.$image.'>';</body>

并用整段程序替换<body>标签。
如果需要多次调用此程序的话,可以写成一个函数,各位按需要改写。
总结
用PHP的方法来输出随机图片的好处是:
1.维护简单,只需要控制目录里图片的数量。
2.可以自定义文件类型,只要你有需要,改成随机输出一个Flash也行的
3.可以自定义输出结果,换句话说,用在什么地方都行了
4.改写成函数后功能更强大
PHP 相关文章推荐
php分页函数
Jul 08 PHP
jq的get传参数在utf-8中乱码问题的解决php版
Jul 23 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
php下使用SimpleXML 处理XML 文件
Feb 27 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
神盾加密解密教程(一)PHP变量可用字符
May 28 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
Laravel框架表单验证操作实例分析
Sep 30 PHP
phpMyAdmin链接MySql错误 个人解决方案
Dec 28 #PHP
php 需要掌握的东西 不做浮躁的人
Dec 28 #PHP
php 文章采集正则代码
Dec 28 #PHP
PHP array_push 数组函数
Dec 26 #PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 #PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 #PHP
php 常用类整理
Dec 23 #PHP
You might like
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP无限分类(树形类)
2013/09/28 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
javascript中数组中求最大值示例代码
2013/12/18 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
老生常谈JavaScript数组的用法
2016/06/10 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
D3.js实现饼状图的方法详解
2016/09/21 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
Angular2+如何去除url中的#号详解
2017/12/20 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
js实现电灯开关效果
2021/01/19 Javascript
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Python 多线程实例详解
2017/03/25 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
django最快程序开发流程详解
2019/07/19 Python
在keras中实现查看其训练loss值
2020/06/16 Python
Python容器类型公共方法总结
2020/08/19 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
应届生个人求职信模板
2013/11/26 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
上课不认真检讨书
2014/09/17 职场文书
CSS 文字装饰 text-decoration & text-emphasis 详解
2021/04/06 HTML / CSS