Date: 2009-12-17 00:00:00

PHP随机显示图片功能

图片是人类交流的手段之一,尽管不同的人对图片的理解可能不尽相同,但是它可以跨越文字、种族、文化背景等,它是世界级网络传播信息的手段之一,譬如你打开一个西班牙新闻网站,最先引起你注意的不是文字,而是图片,所以网站不能没有图片,只有文字无法展示网站的色彩,合理使用图片的功能可以让网友在你的网站停留,何况很多网站就是靠图片存在的,随机显示图片是网站的基本功能之一,经常用于显示企业的产品、公司的形象图片上,在一些CG、国画网站上也经常用到,以下讲解使用PHP5.3语言展示图片显示功能。
<?php
   $my_list='';
 
   $my_folder = "images/";  //用$my_folder变量保存图片所在目录,必须用“/”结尾
   mt_srand((double)microtime()*1000); //下面要使用到随机数,所以这里给随机数发生器播种,但自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已自动完成。 
   
   $imgs = dir($my_folder);
 
   //以下检查目录下是否有图片,并生成一个清单
   while ($file = $imgs->read()) {
     if (preg_match("/gif/i", $file) || preg_match("/jpg/i", $file) || preg_match("/png/i", $file))
       $my_list .= "$file ";  }

 //使用eregi("gif", $file) 出现Deprecated:  Function eregi() is deprecated in    产生错误的原因是:eregi()函数在php 5.30不被支持,修正方法:if (eregi("^(style|style_)(.*)*", $file)) 修改为if (preg_match("/^(style|style_)(.*)*/i", $file))
   
   closedir($imgs->handle);   //把清单里的项都放到一个数组里,closedir -- 关闭目录句柄
  
   $my_list = explode(" ", $my_list);
   $no = sizeof($my_list)-2;  //生成一个介于0和图片数量之间的随机数
   $random = mt_rand(0, $no);
   $image = $my_list[$random]; //输出结果
    echo '<img src="'.$my_folder.$image.'" border=0/>';

  //如果要通过这个函数变换页面背景的话,可以把最后一句改为:
 //echo '<body style="backgroud-image:url("'.$my_folder.$image.'">';</body>
?>

函数介绍:
dir-- directory 类
这是个仿冒面向对象的机制来读取一个目录。给定的 directory 被打开。一旦目录被打开,有两个属性可用。handle 属性可以用在其它目录函数例如readdir(),rewinddir() 和 closedir() 中。path 属性被设为被打开的目录路径。有三个方法可用:read,rewind 和 close。至于explode和sizeof,请自己查看PHP函数手册,这两个知识已经被我们讲烂了。