2010-06-19 88 views
0

此函數從與頁面名稱匹配的文件夾中抓取所有jpeg並打印背景圖像。在主頁上搜索所有子目錄並隨機選擇一個。我想排除(只在主頁上)某些匹配一系列名稱的文件......任何人都可以幫忙嗎?排除名稱數組中搜索的某些文件

$isHome = $this->level() == 0; 

$path = 'public/images/bg/'; 
if (!$isHome) $path .= $this->slug; 

$homepagefile = URL_PUBLIC.'public/images/bg/'.$this->slug.'/main.jpg'; 

$bgimagearray = array(); 
$iterator = new DirectoryIterator($path); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile() && !preg_match('\.jpg$/', $fileinfo->getFilename()) && !$isHome) { 
     $bgimagearray[] = "'" . $fileinfo->getFilename() . "'"; 
    } else if ($fileinfo->isDir() && $isHome) { 
     $iterator2 = new DirectoryIterator($path . $fileinfo->getFilename()); 
     foreach ($iterator2 as $fileinfo2) { 
      if ($fileinfo2->isFile() && !preg_match('\.jpg$/', $fileinfo2->getFilename())) { 
       $bgimagearray[] = "'" . $fileinfo->getFilename() . '/' . $fileinfo2->getFilename() . "'"; 
      } 
     } 
    } 
} 

$bgimage = array_rand($bgimagearray); 

回答

0

簡單來說,你只需要在if聲明另一個條件時,過濾哪些項目進入bgimagearray的主頁。

if ($fileinfo2->isFile() 
    && !preg_match('\.jpg$/', $fileinfo2->getFilename()) 
    && ! in_array($fileinfo2->getFilename, $my_blacklist_array) // added 
) { 

旁白:你的代碼是有點亂,你的任務有可能成爲與漂亮的代碼結構解決;然而,這將重寫你現有的代碼,而不是回答提出的問題。

+0

不錯 - 謝謝。 – Andy 2010-06-19 16:59:25

相關問題