Php 如何从具有特定文件名的数组中删除所有图像

Php 如何从具有特定文件名的数组中删除所有图像,php,Php,我正在使用下面的代码创建一个图像数组。我希望能够在文件名中不添加任何带有-c.jpg的图像。我该怎么做 <?php $jsarray = array(); $iterator = new DirectoryIterator(dirname("public/images/portfolio/all/")); foreach ($iterator as $fileinfo) { if ($fileinfo->isFile()) { //filtering to e

我正在使用下面的代码创建一个图像数组。我希望能够在文件名中不添加任何带有-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

$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);
就这样

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

试试看。告诉您搜索字符串的位置(如果存在),如果不存在则告诉您false

嗯,手册上说,如果没有找到针,strpos返回FALSE。然后应该使用“==FALSE”。我更喜欢preg_match解决方案,因为这里应该排除以-c.jpg结尾的文件名。看来你是对的。我发誓,我记得在过去的几年里,我用过-1,但那是PHP3时代。无论如何,感谢您的关注,答案经过编辑,以防止将来误导任何人。