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制作静态网站的模板框架
Oct 09 PHP
用PHP实现小型站点广告管理(修正版)
Oct 09 PHP
新闻分类录入、显示系统
Oct 09 PHP
用PHP实现多级树型菜单
Oct 09 PHP
深入php list()函数的详解
Jun 05 PHP
php实现的双向队列类实例
Sep 24 PHP
php常用文件操作函数汇总
Nov 22 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
PDO::inTransaction讲解
Jan 28 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
php png失真的原因及解决办法
Oct 24 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三种实现多线程类似的方法
2015/10/30 PHP
php验证码的制作思路和实现方法
2015/11/12 PHP
php封装的连接Mysql类及用法分析
2015/12/10 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
通过jQuery打造支持汉字,拼音,英文快速定位查询的超级select插件
2010/06/18 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
基于js与flash实现的网站flv视频播放插件代码
2014/10/14 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
vue2.0全局组件之pdf详解
2017/06/26 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
[58:12]Ti4第二日主赛事败者组 LGD vs iG 3
2014/07/21 DOTA
python爬取网页内容转换为PDF文件
2020/07/28 Python
python3 pygame实现接小球游戏
2019/05/14 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
Python的Lambda函数用法详解
2019/09/03 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
计算机售后服务承诺书
2014/05/30 职场文书
生物学专业求职信
2014/07/23 职场文书
个人工作表现评价材料
2014/09/21 职场文书
2015财务年度工作总结范文
2015/05/04 职场文书
新学期主题班会
2015/08/17 职场文书
PyQt5实现多张图片显示并滚动
2021/06/11 Python
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android