PHP: rastgele tüm dosyaları ama okumak?

4 Cevap php

rastgele bir sırayla dizin okuma bir yolu varsa ben merak ediyorum.

Aşağıdaki kod ile ben dizin başparmak ile çalışan ve bu benim web görüntüleri yazdırmak oluyor. Ancak, her zaman alfabetik okumak ve rastgele yaparken bir yol varsa ben merak edilir?

<?php
$path = 'thumbs';
if ($handle = opendir($path)) {
    while (false !== ($file = readdir($handle))) {
        if ($file != '.' && $file != '..' && $file != '.DS_Store' && $file != 'Thumbs.db') {
                print "<img class='thumb' src='$path/$file'/>";

        } else {
            //no proper file
        }
    }
    closedir($handle);
}
?>

Önerileriniz için teşekkür ederim!

selamlar

4 Cevap

neden bir dizi sonuç koymak ve daha sonra rastgele dizi üreticimizin?

bir dizi yerine dosya adlarını koydu görüntüleri baskı, zaman döngü biter onu karıştırmak ve değerlerini yazdırmak için bundan sonra başka bir döngü yapmak.

Bu fonksiyon ile deneyin:

function getDirContent($dir='./'){
if ( is_dir($dir) ) {
    $fd = @opendir($dir);
    while ( ($part = @readdir($fd)) == TRUE ) {
        clearstatcache();
        $dir_array[] = $part;
    }
    if($fd == TRUE) {
        closedir($fd);
    }
    if (is_array($dir_array)) {
        shuffle($dir_array);
        return $dir_array;
    } else {
        Return FALSE;
    }
}

}

Ben bu eski bir yazı olduğunu biliyorum ama bu kod birisi arama için faydalı olabilir:

$dir = 'path/to/dir';
  if ( $handle = opendir($dir) ) {
  $files = array();
  while ( false !== ($file = readdir($handle)) ) {
  if ($file != '.' && $file != '..') {
     array_push($files,$file);
 }
}
  closedir($handle);
  shuffle($files); // <- THIS DID THE TRICK**
  foreach( $files as $file ) {
  echo $file;
  }
}