У меня есть каталог, который я пытаюсь отсканировать с помощью scandir()
, конечно, и распечатать его на экране.
К сожалению, я не могу этого сделать. Я ищу .CSV
файлы в каталоге. На данный момент есть один.
Хост-система: Ubuntu 16.04
Бег Apache2 Mysql
Локальный сервер с PhpAdmin
.
Каталог для сканирования: /var/www/html
Код с использованием:
$l = preg_grep("/var/www/html/.(CSV)$~", scandir($dir_f));
print_r("Found List of Files" + $l);
Вы можете использовать функцию PHP шарик() для получения всех файлов, соответствующих заданному шаблону в каталоге.
Пример:
$matches = array();
foreach (glob('/var/www/html/*.CSV') as $f) {
$matches[] = $f;
}
Итак, если я не хочу печатать его на экране, а скорее открываю каждый файл и помещаю его в массив, как мне это сделать? Поскольку он находится в массиве, я бы для каждого это правильно? А потом использовать csvreader?
Вы можете легко добиться этого, используя fgetcsv() внутри этого цикла (php.net/fgetcsv)
Разве я не должен указывать файл? Или он работает с циклом без указания? Сейчас есть только 1 файл, но со временем их будет 300+, так что хотелось бы максимально автоматизировать
Вы должны использовать эту функцию в цикле (например, у вас будет while() внутри foreach()). В руководстве по PHP есть пример использования, надеюсь, это поможет.
вместо этого я предлагаю glob()
print_r(glob("/var/www/html/*.CSV"));