php 站点img文件下有若干个图片,其命名以文字或数字+.jpg 。怎样随机获取其中某一张图片并显示在 <td></td>之间呢?? 遍历该目录下的所有文件,获取文件名保存到一个数组,然后shuffle,取第一个即可…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <?phpif ($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>... How to implement shuffle in data base? 命名以文字或数字+.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;} 如果你的文件名也是随机的话,那就不方便操作了,因为找不到相应的函数来获取这些名字如果是上述情况的话,建议将文件名保存到数据库,在取出来的时候,按主键(这一般来说是递增的数据)来进行随机获取。这样具体的方法就是select rand(),XXX from XX 即可 首先,我不知道他文件名的规则。既然是文本和数字混合,我只能当是没有规律的。其次,遍历是考虑到该文件夹可能是上传路径,所以文件随时会有增减。如果这个文件夹里的文件更新是管理员控制的,那么可以在每次增减文件后更新一个列表然后PHP文件中只要每次读那个列表即可。以上。 遍历整个文件夹。然后使用array_rand PHP面向对象学习——类的实践 求助正则表达式 关于Smarty 重新组合变量的问题 php一般都用什么开发工具? 谁能帮我解惑,顶者都有分 phpmyadmin小问题 各位高手,小弟跪求一段简单发送E_mail的代码!!! 讨论并请教一个搜索功能,用户输入一个或一组关键字,怎么样将越接近的结果显示在越上面。即搜索结果相关性排序。 PHP返回mysql数据库中文字符出现乱码问题,大侠帮助解决? 如何用php实现地址栏用get传值时隐藏所传值的value 大侠好:我想申请空间和域名,要价格便宜的,免费也行, 请问怎样判断上传图片的数量
<?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>
...
不推荐“遍历文件夹”,那样数量大的话会很麻烦很慢的!!!做个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;
}
如果是上述情况的话,建议将文件名保存到数据库,在取出来的时候,按主键(这一般来说是递增的数据)来进行随机获取。
这样具体的方法就是select rand(),XXX from XX 即可