2009-11-29 52 views
0

我正在使用下面的代碼創建圖像數組。我很樂意能夠而不是在文件名中添加-c.jpg的任何圖像。我怎樣才能做到這一點?如何使用特定文件名從陣列中刪除所有圖像

<?php 
$jsarray = array(); 
$iterator = new DirectoryIterator(dirname("public/images/portfolio/all/")); 
foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile()) { 
     //filtering to exclude the color images 
     $jsarray[] = "'" . $fileinfo->getFilename() . "'"; 
    } 
} 
$jsstring = implode(",", $jsarray); 
?> 

我正在使用PHP5。

回答

0
$jsarray = array(); 
$iterator = new DirectoryIterator(dirname("public/images/portfolio/all/")); 

foreach ($iterator as $fileinfo) { 
    if ($fileinfo->isFile() && !preg_match('/-c\.jpg$/', $fileinfo->getFilename())) { 
     $jsarray[] = "'" . $fileinfo->getFilename() . "'"; 
    } 
} 

$jsstring = implode(",", $jsarray); 

就是這樣。

+0

感謝隊友。完善。 – Andy 2009-11-29 15:40:58

0
if(strpos($fileinfo->getFilename(), "-c.jpg") === false) { 
    $jsarray[] = "'" . $fileinfo->getFilename() . "'"; 
} 

試試看。 strpos告訴你搜索字符串的位置,如果不存在,則返回false

+0

嗯,該手冊說,沒有找到針時,條碼返回FALSE。那麼你應該使用'=== FALSE'。我更喜歡preg_match解決方案,因爲文件名*結尾*和-c.jpg應該排除在這裏。 – mkluwe 2009-11-29 15:46:16

+0

看來你是對的。我發誓我記得過去使用它的時間是-1,但那是PHP3時代。無論如何,謝謝你的迴應,答案已經過編輯,以防止未來誤導任何人。 – Toji 2009-11-29 15:56:38

相關問題