php ile bir dizindeki görüntüleri listelemek ve belirli bir sınıf ekleyebilir

2 Cevap

Nasıl ... Bir klasördeki görüntüleri listelemek (herhangi bir sayı olabilir) ve ilk li "ilk" bir sınıfı vardır ve son liste öğesi "son" bir sınıfı vardır emin bir listede yankı onlara gibi pek ...

<li class="first"><img src="flowing-rock.jpg" /></li>
<li><img src="stones.jpg" alt="Stones" /></li>
<li><img src="grass-blades.jpg" /></li>
<li><img src="ladybug.jpg" alt="Ladybug" /></li>
<li class="last"><img src="pier.jpg" alt="Pier" /></li>

Herhangi bir yardım mutluluk duyacağız ...

2 Cevap

Aşağıda sırasıyla, dinlenme önce ve sonra onları baskı, birinci ve (varsa) son seçecektir. Bu scandir() göre alfabetik olarak sıralanır.

$contents = scandir(DIRECTORY);
array_pop($contents); // Remove "."
array_pop($contents); // Remove ".."
$last = array_pop($contents); // Grab last element
$first = array_shift($contents); // Grab first element

// print elements
if (!is_null($first)) echo "<li class='first'><img src='$first' /></li>\n";
foreach ($contents as $key => $val)
    echo "<li><img src='$val' /></li>\n";
if (!is_null($last)) echo "<li class='last'><img src='$last' /></li>\n";

Geçerli dizi öğesinin dizinini kontrol edin, sonra glob görüntü dosyaları taramak için kullanabilirsiniz:

$imgs= glob('/path/to/images/*.jpg');

for ($i=0; $i<count($imgs); $i++) {
 if ($i == 0) $class= ' class="first"';
 else if ($i == count($imgs)-1) $class= ' class="last"';
 else $class= '';
 printf("<li%s><img src=\"%s\" /></li>\n", $class, htmlentities(basename($imgs[$i])));
}

Eğer dizin adını tutmak istiyorsanız basename çağrıyı dışarı atın.