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下检测字符串是否是utf8编码的代码
Jun 28 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
深入PHP magic quotes的详解
Jun 17 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
PHP IDE phpstorm 常用快捷键
May 18 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
PHP抽象类基本用法示例
Dec 28 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 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部分常见问题总结
2008/03/27 PHP
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
JavaScript格式化数字的函数代码
2010/11/30 Javascript
使用javascript过滤html的字符串(注释标记法)
2013/07/08 Javascript
javascript静态页面传值的三种方法分享
2013/11/12 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Python实现弹球小游戏
2020/08/01 Python
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
成人教育自我鉴定
2013/11/01 职场文书
大学生自我鉴定
2013/12/08 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
2015年售票员工作总结
2015/04/29 职场文书
谢师宴学生致辞
2015/07/27 职场文书
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript