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 ADODB使用方法集锦
Mar 25 PHP
php MYSQL 数据备份类
Jun 19 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
Sep 10 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
Jul 02 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
使用PHP免费发送定时短信的实例
Oct 24 PHP
PHP implode()函数用法讲解
Mar 08 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
深入理解angular2启动项目步骤
2017/07/15 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
Swiper.js实现移动端元素左右滑动
2019/09/08 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
Python随手笔记之标准类型内建函数
2015/12/02 Python
django缓存配置的几种方法详解
2018/07/16 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
PHP开发的一般流程
2013/08/13 面试题
《临死前的严监生》教学反思
2014/02/13 职场文书
国培远程培训感言
2014/03/08 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技