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 - Html Transfer Code
Oct 09 PHP
php4的彩蛋
Oct 09 PHP
深入了解php4(2)--重访过去
Oct 09 PHP
关于在php.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
php 结果集的分页实现代码
Mar 10 PHP
php include和require的区别深入解析
Jun 17 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
基于php伪静态的实现方法解析
Jul 31 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
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
js切换光标示例代码
2013/10/10 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
javascript实现拖放效果
2015/12/16 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
python中的lambda表达式用法详解
2016/06/22 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
Python处理CSV与List的转换方法
2018/04/19 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python绘制地震散点图
2019/06/18 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
自动化专业毕业生自荐信
2013/11/01 职场文书
初三学习决心书
2014/03/11 职场文书
出生公证书样本
2014/04/04 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
写给领导的感谢信
2015/01/22 职场文书
小学新教师个人总结
2015/02/05 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
高一军训感想
2015/08/07 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang