2013-01-18 28 views
0

我有一个问题困扰着我的想法。我有这个PHP脚本,列出了所有从一个目录,并写在页面上的图片:PHP列表文件夹的内容并只显示其中的一部分

<?PHP 
    $directory="photos"; 
    $sortOrder="newestFirst"; 

    $results = array(); 
    $handler = opendir($directory); 

    while ($file = readdir($handler)) { 
     if ($file != '.' && 
      $file != '..' && 
      $file != "robots.txt" && 
      $file != ".htaccess") { 

      $currentModified = filectime($directory."/".$file); 
      $file_names[] = $file; 
      $file_dates[] = $currentModified; 
     } 
    } 
    closedir($handler); 

    //Sort the date array by preferred order 
    if ($sortOrder == "newestFirst"){ 
     arsort($file_dates); 
    } else { 
     asort($file_dates); 
    } 

    //Match file_names array to file_dates array 
    $file_names_Array = array_keys($file_dates); 
    foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; 
    $file_dates = array_merge($file_dates); 

    $i = 0; 

    //Loop through dates array and then echo the list 
    foreach ($file_dates as $$file_dates){ 
     $date = $file_dates; 
     $j = $file_names_Array[$i]; 
     $file = $file_names[$j]; 
     $i++; 

     echo "<img src=photos/$file>\n"; 
    } 
?> 

它怎么会是可能的,有100个文件夹中列出一次仅20个文件,并随机,意思是每次刷新页面20个随机图片加载?

我该怎么办?

+0

查找到分页 –

+0

'$计数= 0; foreach($ file ...){if($ count ++> 20){break; }回声...} –

+0

不看分页,我正在随机化每个页面刷新文件。感谢您的关注 – pcapelo

回答

0

如果你不需要多页,但只在页面刷新,你可以做到这一点,因为这是简单的:

  1. 创建从目录中的图像的列表,并把它们放到一个数组。

  2. 在数组大小内生成20个随机数。

  3. 只输出刚刚获得的随机密钥生成的图像。

该代码应该足够简单,因此我不会发布任何示例。

+0

我正在寻找一个例子:P,不是很熟练使用php。无论如何,谢谢 – pcapelo

+0

嘿Dainis,我最终做了像你一样的建议,谢谢! – pcapelo

0

你可以试试这个 -

$dir = '/tmp'; 
$files = scandir($dir); 
$rand_keys = array_rand($files, 2); 
echo $input[$rand_keys[0]] . "\n"; 
echo $input[$rand_keys[1]] . "\n"; 
相关问题