Есть несколько проблем с этим кодом, которые мешали бы вам получить правильный вывод.
Основная причина, по которой вы не получаете вывод из теста if
, заключается в том, что условие (предположительно) неверное имя переменной.
// variable with the file data is called $email
$email = file_get_contents("$dirname/email.txt");
// test is checking $stremail which is never given a value
if ($stremail == $query) {
echo($dirname);
}
Существует также проблема с комбинацией scandir()
и unset()
. Как вы обнаружили, scandir()
в основном дает вам все, что dir
или ls
в командной строке. Использование unset()
для удаления указанных c файлов проблематично c, так как необходимо вести жестко закодированный список файлов. Однако unset()
также оставляет дыры в вашем массиве, счетчик изменяется, а исходные индексы - нет. Возможно, поэтому вы используете $folderamount + 10
в вашем l oop. Взгляните на этот вопрос переполнения стека, чтобы подробнее обсудить проблему.
Перебазировать ключи массива после сброса элементов
Я рекомендую прочитать справочную страницу PHP на функция glob()
, поскольку она значительно упростит получение содержимого каталога. В частности, обратите внимание на флаг GLOB_ONLYDIR
.
https://www.php.net/manual/en/function.glob.php
Наконец, не увеличивайте свой счетчик l oop в начале l oop при использовании счетчика для чтения элементов из массива. Взгляните на справочную страницу PHP для циклов foreach
для более точного способа перебора массива.
https://www.php.net/manual/en/control-structures.foreach.php