Php 如何从Wordpress中的文件夹中随机获取15幅图像?
我需要从文件夹中随机获取15张图像,并将其显示在页面上: 我尝试了以下代码,但它没有达到我想要的效果:Php 如何从Wordpress中的文件夹中随机获取15幅图像?,php,wordpress,Php,Wordpress,我需要从文件夹中随机获取15张图像,并将其显示在页面上: 我尝试了以下代码,但它没有达到我想要的效果: $string =array(); $filePath='wp-content/themes/tema/img-test/'; $dir = opendir($filePath); while ($file = readdir($dir)) { if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$fi
$string =array();
$filePath='wp-content/themes/tema/img-test/';
$dir = opendir($filePath);
while ($file = readdir($dir)) {
if (eregi("\.png",$file) || eregi("\.jpg",$file) || eregi("\.gif",$file) ) {
$string[] = $file;
}
}
while (sizeof($string) != 0){
$img = array_pop($string);
echo "<img src='$filePath$img' width='100px'/>";
}
$string=array();
$filePath='wp-content/themes/tema/img test/';
$dir=opendir($filePath);
而($file=readdir($dir)){
如果(eregi(\.png,$file)| eregi(\.jpg,$file)| eregi(\.gif,$file)){
$string[]=$file;
}
}
while(sizeof($string)!=0){
$img=array\u pop($string);
回声“;
}
因此,您将所有文件都放在$string
数组中,这很好
您可以使用函数获取数组大小中的一些随机整数:
$string = ['img1.jpg','img2.jpg','img3.jpg'];
$rand = rand(0,count($string)-1);
echo $string[$rand];
你必须循环这个
或者,您可以使用它来自动化所有这些:
$string = ['img1.jpg','img2.jpg','img3.jpg'];
$amount = 3;
$rand_arr = array_rand($string, $amount);
for($i=0;$i<$amount;$i++) {
echo $string[$rand_arr[$i]] ."<br>";
}
$string=['img1.jpg','img2.jpg','img3.jpg'];
$amount=3;
$rand\u arr=array\u rand($string,$amount);
对于($i=0;$i您可以使用PHP自带的glob()
函数执行此操作。它将获取目录中的所有文件。接下来,您可以从检索到的列表中选择一个文件
$randomFiles = array();
$files = glob($dir . '/*.*');
$file = array_rand($files);
for ($i = 0; $i <= 15; $i++) {
$randomFiles[] = $files[$file];
}
$randomFiles=array();
$files=glob($dir.'/*.');
$file=array\u rand($files);
对于($i=0;$i使用此代码。您的随机图像将以$arRandomFiles格式提供
$filePath = 'wp-content/themes/tema/img-test/';
$files = glob($filePath. '*.{jpeg,gif,png}', GLOB_BRACE);
$arKeys = array_rand($files, 15);
$arRandomFiles = array();
foreach ($arKeys as $key) {
$arRandomFiles[] = $files[$key];
}
var_dump($arRandomFiles);
处理这个问题的简单函数
<?php
function getImg( $path ) {
$filePath= $path . '*';
$imgs = glob( $filePath );
if( $imgs ) {
$i = 1;
foreach( $imgs as $img ) {
if( $i <= 15 ) {
$ext = pathinfo( $img, PATHINFO_EXTENSION );
if( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif' ) ) )
$r[] = $img;
}
else
break;
$i++;
}
shuffle( $r );
return $r;
}
else
return array();
}
print_r( getImg( 'wp-content/themes/tema/img-test/' ) );
您可以尝试以下功能:
function getRandomFile($directory)
{
$directoryIterator = new DirectoryIterator($directory);
$count = iterator_count($directoryIterator) - 2;
foreach ($directoryIterator as $fileInfo) {
$last = $fileInfo->getRealPath();
if ($fileInfo->isFile() && (rand() % $count == 0)) {
break;
}
}
return $last;
}
array_rand()将在这里帮助您“它不工作”不是一个问题语句。请参阅word press不是php,因为word press是一个子集。请确保传递的目录以尾随斜杠(/)结尾,并返回表示找不到图像