Bir etki altında mevcut tüm görüntüler

4 Cevap php

Ben benim etki altında i olan tüm görüntüleri bir galeri (benim internet kök klasörü) yapmak istiyorum. Tüm bu görüntüler farklı klasörlerde. Tüm klasörler arasında 'göz' ve görüntüleri döndürmek için en iyi yolu nedir?

4 Cevap

Google Image Search site: www.mydomainwithimages.com arama terimi olarak ve bu size tüm endeksli görüntüleri gösterecektir kullanın. Bu sürece robots.txt dosyasını Google tarayıcısını dışlamaz olarak etki şey olmalıdır.

opendir özyinelemeli bir döngü içinde çağrılan bir fonksiyon yazmak isterim bir göz atın, işlevi, belirli bir dizindeki dosyaları aracılığıyla döngü dosya uzantısını kontrol edin ve bir dizi olarak dosyaları geri verebilecek Eğer global bir dizi ile birleştirmek olacaktır.

Barındırma sistemine bağlıdır, exec veya passthru ile komut satırını kullanabilirsiniz

find /path/to/website/root/ -type f -name '*.jpg'

Eğer böyle bir şey yapamıyorsan yangın dediği gibi, opendir gitmek için yoludur.

PHP'nin DirectoryIterator bir spin vermek istiyorum.

Bu denenmemiş pseudo-kod, ancak böyle biraz çalışması gerekir:

function scanDirectoryForImages($dirPath)
{
    $images = array();
    $dirIter = new DirectoryIterator($dirPath);
    foreach($dirIter as $fileInfo)
    {
        if($fileInfo->isDot()) 
            continue;
        // If it's a directory, scan it recursively
        elseif($fileInfo->isDir())
        {
            $images = array_merge(
                $images, scanDirectoryForImages($fileInfo->getPath())
            );
        }
        elseif($fileInfo->isFile())
        {
            /* This works only for JPEGs, oviously, but feel free to add other
            extensions */
            if(strpos($fileInfo->getFilename(), '.jpg') !== FALSE)
            {
                $images[] = $fileInfo->getPathname();
            }
        }
    }

    return $images;
}

Bu işe yaramazsa beni dava etmeyin, bu tür benim şapka üst gerçekten, ama böyle bir işlevi kullanarak imho, sorununuzu çözmek için en zarif yolu olacaktır.

/ / Edit: yangın belirttiği gibi Evet, bu temelde aynı.