Предполагая, что ваш код работает и вы получаете basename
файлов:
$name = basename($filename); //do not echo the basename
for ($i = 0; $i <= 1000; $i++) {
$trname = "page-$i";
if ($name == $trname) {
echo "$name";
}
}
Поместите один из этих кодов в foreach
и избавьтесь от echo basename($filename);
. Я бы порекомендовал использовать второй, так как вложенные циклы могут оказаться проблемой.
Примечание : Этот код может работать, только если работает ваш.
ВАЖНОЕ РЕДАКТИРОВАНИЕ : я предполагаю, что вы хотите что-то сделать (не повторяя) имена, в этом случае:
function foo(bar) {
$arr = array();
$name = basename($filename);
$name = str_replace("page-", "", $name);
if (intval($name) < 1000 && intval($name) >= 0) {
$arr[] = $name;
}
}
Затем вы можете вызвать функцию таким образом:
function foo() {
$arr = array();
$directory = "testfolder/";
foreach (glob($directory . "page-*.html") as $filename) {
$name = basename($filename);
$name = str_replace("page-", "", $name);
if (intval($name) < 1000 && intval($name) >= 0) {
$arr[] = $name;
}
}
}
$bar = foo();
foreach ($bar as $obj) {
//do something
}