2009-12-11 134 views
0

在此先感謝任何需要時間回覆的人。我真的很感激這個網站!我有一個函數可以加載它在給定目錄中找到的所有圖像(見下文)。我試圖解決的問題是圖像以隨機順序加載。圖像以隨機順序加載?

我希望圖像能夠通過基於文件名的字母順序加載(widget-1.jpg例如會在widget-2.jpg之前加載)。

功能如下...

function get_images() 
{ 
global $options; 
    foreach ($options as $value) { 
    if (get_settings($value['id']) === FALSE) { $$value['id'] = $value['std']; } else { $$value['id'] = get_settings($value['id']); } 
} 
if($my_custom_images !== "") 
{ 
echo $my_custom_images; 
} 
else 
{ 
$dir = 'wp-content/uploads/'; 
$url = get_bloginfo('url').'/wp-content/uploads/'; 
$imgs = array(); 
    if ($dh = opendir($dir)) 
    { 
    while (($file = readdir($dh)) !== false) 
     { 
     if (!is_dir($file) && preg_match("/\.(bmp|jpeg|gif|png|jpg|)$/i", $file)) 
      { 
       array_push($imgs, $file); 
      } 
     } 
     closedir($dh); 
    } else { 
     die('cannot open ' . $dir); 
    } 

    foreach ($imgs as $idx=>$img) 
    { 
     $class = ($idx == count($imgs) - 1 ? ' class="last"' : ''); 
     echo '<img src="' . $url . $img . '" alt="' .$img . '"' . $class . ' />'; 
    } 
    } 
    } 

回答

2

$imgs使用sort()後,你已經從目錄

+0

完美的作品Yacoby。謝謝您的幫助! –

0

他們可能出現的順序排序的目錄順序,填補它在其中被創造。編輯:一個解決方案是popen ("ls")並過濾文件名。我看,php沒有這樣的電話。

無論如何,我同意第一個答案:排序列表後,它是最通用和便攜的解決方案。