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 xml文件操作实现代码(二)
Mar 20 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
Laravel5中contracts详解
Mar 02 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
php源码之将图片转化为data/base64数据流实例详解
Nov 27 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
php经典趣味算法实例代码
Jan 21 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/02/23 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
jquery 注意事项与常用语法小结
2010/06/07 Javascript
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
js获取Get值的方法
2016/09/29 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
Centos6.8下Node.js安装教程
2017/05/12 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
python实现UDP协议下的文件传输
2020/03/20 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
css3 flex布局 justify-content:space-between 最后一行左对齐
2020/01/02 HTML / CSS
html5 figure和figcaption的使用方法
2018/09/10 HTML / CSS
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
采购经理岗位职责
2014/02/16 职场文书
小学数学国培感言
2014/03/10 职场文书
护士求职自荐信范文
2014/03/19 职场文书
年终晚会主持词
2014/03/25 职场文书
节能环保标语
2014/06/12 职场文书
大学活动总结模板
2014/07/10 职场文书
委托书格式
2014/08/01 职场文书
小学家长学校培训材料
2014/08/24 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
Django使用echarts进行可视化展示的实践
2021/06/10 Python
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python