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 相关文章推荐
对盗链说再见...
Oct 09 PHP
php中出现空白页的原因及解决方法汇总
Jul 08 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
PHP易混淆知识整理笔记
Sep 24 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
项目中应用Redis+Php的场景
May 22 PHP
微信支付扫码支付php版
Jul 22 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP调用API接口实现天气查询功能的示例
Sep 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
2016/04/17 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
javascript中函数的写法实例代码详解
2018/10/28 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python urllib爬取百度云连接的实例代码
2017/06/19 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python实现随机漫步功能
2018/07/09 Python
python 弹窗提示警告框MessageBox的实例
2019/06/18 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
openCV提取图像中的矩形区域
2020/07/21 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
就业自荐书
2013/12/05 职场文书
小学生班会演讲稿
2014/01/09 职场文书
中学教师请假制度
2014/02/03 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
Python学习之os包使用教程详解
2022/03/21 Python