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
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
Jun 29 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
PHP中比较时间大小实例
Aug 21 PHP
php有道翻译api调用方法实例
Dec 22 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
JS操作XML中DTD介绍及使用方法分析
Jul 04 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
Oct 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
初学CAKEPHP 基础教程
2009/11/02 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
php常用的url处理函数总结
2014/11/19 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
CI框架常用函数封装实例
2016/11/21 PHP
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
2019/01/24 Javascript
vue按需加载实例详解
2019/09/06 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
Python正则表达式使用经典实例
2016/06/21 Python
python逆向入门教程
2018/01/15 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
用Python解决x的n次方问题
2019/02/08 Python
详解利用Python scipy.signal.filtfilt() 实现信号滤波
2019/06/05 Python
python 默认参数相关知识详解
2019/09/18 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
anello泰国官方网站:日本流行包包品牌
2019/08/08 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
求职信模版
2013/11/30 职场文书
简历的个人自我评价范文
2014/01/03 职场文书
信访工作者先进事迹
2014/01/17 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书