Tohle vypadá jako práce pro glob , která vrací pole názvů souborů odpovídajících zadanému vzoru. Jsem si vědom druhé právě zveřejněné odpovědi, ale pojďme poskytnout alternativu k regulárnímu výrazu.
Podle horního komentáře na stránce dokumentů byste mohli udělat něco takového:
<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);
foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>
GLOB_BRACE
Volby umožňují zadat seznam hodnot ve složených závorkách a hvězdičky kolem nich umožňují, aby se tato čísla objevila kdekoli v názvu souboru. Poté můžete iterovat vrácené pole a dělat, co chcete, s $filename
.
Můžete použít svůj příklad for
smyčka pro automatické vytvoření řetězce, který se předá do glob
.
Zde je výstup, když jsem to spustil v testovacím adresáři, který jsem vytvořil:
photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp
Všimněte si, že jsem tam vložil další soubor, a386b.xlsx
, neodpovídá vzoru a neobjevuje se v seznamu.