遍历该目录下的所有文件,获取文件名保存到一个数组,然后shuffle,取第一个即可……

解决方案 »

  1.   


    <?php
    if ($handle = opendir('img/')) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                $list[] = $file;
            }
        }
        closedir($handle);
    }
    $rand = array_rand($list, 1);
    ?> 
    ...
    <td><img src="img/<?=$list[$rand];?>
    </td>
    ...
      

  2.   

    How to implement shuffle in data base?
      

  3.   

    命名以文字或数字+.jpg在这个上做文章吧!
    不推荐“遍历文件夹”,那样数量大的话会很麻烦很慢的!!!做个mode(随机抽取数组值)如下:
    /**==============================================
    * 随机从数组中取N个 $a[0]=a,$a[1]=b,$a[2]=c => $b[1]=b,$b[0]=a
    *----------------------------------------------------------------------------
    */
    function randArray($dealArray,$num){
    if ( !is_array($dealArray) ) Return "";
    if ( $num >= count($dealArray) ) Return $dealArray;
    if ( $num <= 0 ) Return "";
    srand((float) microtime() * 10000000);
    $rand_keys = array_rand($dealArray, $num);
    for($j=0;$j<$num;$j++){
    $resultArray[$rand_keys[$j]] = $dealArray[$rand_keys[$j]];
    }
    return $resultArray;
    }
      

  4.   

    如果你的文件名也是随机的话,那就不方便操作了,因为找不到相应的函数来获取这些名字
    如果是上述情况的话,建议将文件名保存到数据库,在取出来的时候,按主键(这一般来说是递增的数据)来进行随机获取。
    这样具体的方法就是select rand(),XXX from XX 即可
      

  5.   

    首先,我不知道他文件名的规则。既然是文本和数字混合,我只能当是没有规律的。其次,遍历是考虑到该文件夹可能是上传路径,所以文件随时会有增减。如果这个文件夹里的文件更新是管理员控制的,那么可以在每次增减文件后更新一个列表然后PHP文件中只要每次读那个列表即可。以上。
      

  6.   

    遍历整个文件夹。然后使用array_rand