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中通过curl smtp发送邮件
Jun 05 PHP
PHP关联链接常用代码
Nov 05 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
php查询mysql数据库并将结果保存到数组的方法
Mar 18 PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 PHP
php array_multisort 对数组进行排序详解及实例代码
Oct 27 PHP
php 将json格式数据转换成数组的方法
Aug 21 PHP
PHP封装的完整分页类示例
Aug 21 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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获取http请求的头信息实现步骤
2012/12/16 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
常用的javascript function代码
2008/05/23 Javascript
为javascript添加String.Format方法
2020/08/11 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
python基础教程之常用运算符
2014/08/29 Python
简单谈谈python中的多进程
2016/11/06 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
Linux文件操作命令都有哪些
2015/02/27 面试题
优秀的毕业生的自我评价
2013/12/12 职场文书
客服主管岗位职责
2013/12/13 职场文书
公司部门司机岗位职责
2014/01/03 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
安全生产责任书范本
2014/04/15 职场文书
工会主席事迹材料
2014/06/03 职场文书
助理政工师申报材料
2014/06/03 职场文书
天猫活动策划方案
2014/08/21 职场文书
《雷雨》教学反思
2016/02/20 职场文书