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 memcache扩展的三种安装方法
Apr 26 PHP
php后门URL的防范
Nov 12 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
CI框架入门示例之数据库取数据完整实现方法
Nov 05 PHP
PHP用反撇号执行外部命令
Apr 14 PHP
PHP中foreach()用法汇总
Jul 02 PHP
PHP之密码加密的几种方式
Jul 29 PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 PHP
利用php输出不同的心形图案
Apr 22 PHP
php日期操作技巧小结
Jun 25 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 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的基本常识小结
2013/07/05 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
在Django中使用Sitemap的方法讲解
2015/07/22 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
Django 路由层URLconf的实现
2019/12/30 Python
python用什么编辑器进行项目开发
2020/06/17 Python
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
《临死前的严监生》教学反思
2014/02/13 职场文书
大学社团活动总结
2014/04/26 职场文书
政府信息公开实施方案
2014/05/09 职场文书
投标承诺书怎么写
2014/05/24 职场文书
大专生找工作自荐书
2014/06/10 职场文书
小学学校门卫岗位职责
2014/08/03 职场文书
迎国庆演讲稿
2014/09/05 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS