2009-11-29 50 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

相关问题