>백엔드 개발 >PHP 튜토리얼 >PHP随机显示目录下的图片_PHP

PHP随机显示目录下的图片_PHP

WBOY
WBOY원래의
2016-06-01 12:20:58872검색

用JavaScript写的话,程序流程应该是:建立一个图片数组->随机选择数组里其中一个值->生成样式并写入body标签

可是用JS做的话,有以下缺点:

1.万一浏览器禁用了JS的话就失效了,而且写代码是需要考虑兼容性。

2.维护比较麻烦,图片的位置都存放在数组里。

于是我提议用PHP处理,可是我和她对PHP都是半桶水的,一时之间也想不出怎么做。今天时运高,看到一个PHP随机显示目录下图片的源码,学习一下,并分享之。

正文

先看看原理:从一个目录里获取某类型文件的清单(用在WEB的话一般是jpg/gif/png)->通过随机函数选一个图片->输出代码

PHP代码如下:

1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>21<br>22<br>23<br>24<br>25<br>26<br>
 <span style="COLOR: rgb(0,0,136)">$imglist</span><span style="COLOR: rgb(51,153,51)">=</span><span style="COLOR: rgb(0,0,255)">''</span><span style="COLOR: rgb(51,153,51)">;</span><br />  <span style="COLOR: rgb(102,102,102); FONT-STYLE: italic">//用$img_folder变量保存图片所在目录,必须用&ldquo;/&rdquo;结尾</span><br /> <span style="COLOR: rgb(0,0,136)">$img_folder</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(0,0,255)">"images/tutorials/"</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br />  <span style="COLOR: rgb(153,0,0)">mt_srand</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,153,0)">(</span>double<span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(153,0,0)">microtime</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">*</span><span style="COLOR: rgb(204,102,204)">1000</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br />  <span style="COLOR: rgb(102,102,102); FONT-STYLE: italic">//使用目录类</span><br /> <span style="COLOR: rgb(0,0,136)">$imgs</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(153,0,0)">dir</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,136)">$img_folder</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br />  <span style="COLOR: rgb(102,102,102); FONT-STYLE: italic">//检查目录下是否有图片,并生成一个清单</span><br /> <span style="COLOR: rgb(177,177,0)">while</span> <span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,136)">$file</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(0,0,136)">$imgs</span><span style="COLOR: rgb(51,153,51)">-></span><span style="COLOR: rgb(0,64,0)">read</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(0,153,0)">)</span> <span style="COLOR: rgb(0,153,0)">{</span><br />   <span style="COLOR: rgb(177,177,0)">if</span> <span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(153,0,0)">eregi</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,255)">"gif"</span><span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(0,0,136)">$file</span><span style="COLOR: rgb(0,153,0)">)</span> <span style="COLOR: rgb(51,153,51)">||</span> <span style="COLOR: rgb(153,0,0)">eregi</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,255)">"jpg"</span><span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(0,0,136)">$file</span><span style="COLOR: rgb(0,153,0)">)</span> <span style="COLOR: rgb(51,153,51)">||</span> <span style="COLOR: rgb(153,0,0)">eregi</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,255)">"png"</span><span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(0,0,136)">$file</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(0,153,0)">)</span><br />     <span style="COLOR: rgb(0,0,136)">$imglist</span> <span style="COLOR: rgb(51,153,51)">.=</span> <span style="COLOR: rgb(0,0,255)">"<span style="FONT-WEIGHT: bold; COLOR: rgb(0,102,153)">$file</span> "</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br /> <span style="COLOR: rgb(0,153,0)">}</span> <span style="COLOR: rgb(153,0,0)">closedir</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,136)">$imgs</span><span style="COLOR: rgb(51,153,51)">-></span><span style="COLOR: rgb(0,64,0)">handle</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br />  <span style="COLOR: rgb(102,102,102); FONT-STYLE: italic">//把清单里的项都放到一个数组里</span><br /> <span style="COLOR: rgb(0,0,136)">$imglist</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(153,0,0)">explode</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,255)">" "</span><span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(0,0,136)">$imglist</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <span style="COLOR: rgb(0,0,136)">$no</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(153,0,0)">sizeof</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(0,0,136)">$imglist</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">-</span><span style="COLOR: rgb(204,102,204)">2</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br /> <span style="COLOR: rgb(102,102,102); FONT-STYLE: italic">//生成一个介于0和图片数量之间的随机数</span><br /> <span style="COLOR: rgb(0,0,136)">$random</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(153,0,0)">mt_rand</span><span style="COLOR: rgb(0,153,0)">(</span><span style="COLOR: rgb(204,102,204)">0</span><span style="COLOR: rgb(51,153,51)">,</span> <span style="COLOR: rgb(0,0,136)">$no</span><span style="COLOR: rgb(0,153,0)">)</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <span style="COLOR: rgb(0,0,136)">$image</span> <span style="COLOR: rgb(51,153,51)">=</span> <span style="COLOR: rgb(0,0,136)">$imglist</span><span style="COLOR: rgb(0,153,0)">[</span><span style="COLOR: rgb(0,0,136)">$random</span><span style="COLOR: rgb(0,153,0)">]</span><span style="COLOR: rgb(51,153,51)">;</span><br /> <br /><span style="COLOR: rgb(102,102,102); FONT-STYLE: italic">//输出结果</span><br /> <span style="COLOR: rgb(177,177,0)">echo</span> <span style="COLOR: rgb(0,0,255)">'<img  src="'</span alt="PHP随机显示目录下的图片_PHP" ><span   style="max-width:90%">.</span><span style="COLOR: rgb(0,0,136)">$img_folder</span><span style="COLOR: rgb(51,153,51)">.</span><span style="COLOR: rgb(0,0,136)">$image</span><span style="COLOR: rgb(51,153,51)">.</span><span style="COLOR: rgb(0,0,255)">'" border=0/>'</span><span style="COLOR: rgb(51,153,51)">;</span>

如果要通过这个函数变换页面背景的话,可以把最后一句改为:

1<br>2<br>
<span style="COLOR: rgb(177,177,0)">echo</span> <span style="COLOR: rgb(0,0,255)">'<body style="backgroud-image:url("'</span><span style="COLOR: rgb(51,153,51)">.</span><span style="COLOR: rgb(0,0,136)">$img_folder</span><span style="COLOR: rgb(51,153,51)">.</span><span style="COLOR: rgb(0,0,136)">$image</span><span style="COLOR: rgb(51,153,51)">.</span><span style="COLOR: rgb(0,0,255)">'">'</span><span style="COLOR: rgb(51,153,51)">;</span><br /><span style="COLOR: rgb(51,153,51)"></</span>body<span style="COLOR: rgb(51,153,51)">></span>

并用整段程序替换标签。

如果需要多次调用此程序的话,可以写成一个函数,各位按需要改写。

总结

用PHP的方法来输出随机图片的好处是:

1.维护简单,只需要控制目录里图片的数量。

2.可以自定义文件类型,只要你有需要,改成随机输出一个Flash也行的

3.可以自定义输出结果,换句话说,用在什么地方都行了

4.改写成函数后功能更强大

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.