获取除视网膜以外的目录中的所有图像

时间:2015-03-06 16:42:43

标签: php

我有一个php脚本,可以抓取set目录中的所有图像。该脚本无故障运行。我的问题是我希望它只能获得视网膜图像。所有视网膜图像都以“#image; @2x.jpg&#39”的格式命名。而所有常规图像都以' image1.jpg'的形式命名。考虑到这一点,我希望我的脚本可以打折包含' @ 2x'以它的名字命名。

我的脚本是:

<?php
    $directory = 'images/';
    $dh = opendir($directory);
    while (false !== ($filename = readdir($dh)))
    {
        $files[] = $filename;
    };
    $images = preg_grep ('/(\.gif|\.GIF|\.jpg|\.jpeg|\.JPG|\.JPEG|\.png|\.PNG)$/i', $files);

    foreach ($images as $image)
    {
        echo '<img src="'.$directory.$image.'" alt="">';
    }
?>

问题是我没有词汇知道在谷歌搜索什么,所以如果有人能指出我正确的方向我会很感激。 感谢

2 个答案:

答案 0 :(得分:2)

我会使用stripos将这个条件放在你的foreach循环中

if(stripos($image,'@2x') === false){
    echo '<img src="'.$directory.$image.'" alt="">';
}

答案 1 :(得分:1)

您可以使用以下命令缩短脚本:

$directory = 'images/';

$allImages = glob($directory.'*.{jpg,JPG,jpeg,JPEG,gif,GIF,png,PNG}', GLOB_BRACE);
$nonRetinaImages = preg_grep('/@2x/i', $allImages, PREG_GREP_INVERT);

foreach ($nonRetinaImages as $image)
{
    echo '<img src="'.$image.'" alt="">';
}