последовательная загрузка папки, полной файлов CSV, без указания имени с использованием сценария php в Mac Terminal - PullRequest
1 голос
/ 25 февраля 2012

Я планирую запустить программу php из Mac Terminal. У меня на рабочем столе есть папка с 800 файлами .csv, и мне нужно написать программу php, которая читает и читает каждую из них, чтобы я мог выполнить некоторые преобразования для данных, которые она хранит. Я знаю, как проанализировать .csv после загрузки, но мне интересно, есть ли способ загрузить каждый файл, не называя его явно? У меня нет списка из 800 имен файлов, но я чувствую, что должен быть способ просто прочитать все файлы в папке в цикле или что-то без указания заголовка каждого файла в списке - я не У меня нет большого опыта в программировании, так что прости меня, если есть очевидный ответ, который я не замечаю.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 25 февраля 2012

Вы можете перебрать все файлы в каталоге, используя readdir(): http://php.net/manual/en/function.readdir.php.

Как только вы получите имя файла, используя readdir(), вы можете проанализировать его, либо разбивсодержимое файла в массив и работа с ячейками путем циклического перемещения по массиву с помощью str_getcsv() (требуется не менее phpv5.3) или по старинке fgetcsv() для чтения черезподавать по одной строке за раз.Для каждого файла создайте строковую переменную, и после строки, которую вы прочитали и преобразовали, просто добавьте измененную строку к этой строке с добавленным символом конца строки.Прочитав весь файл, просто замените содержимое файла оригинала на file_put_contents()

2 голосов
/ 25 февраля 2012

Есть несколько способов сделать это, но глобализация очень проста:

<?php
foreach (glob("*.csv") as $filename) {
   //do somthing
}
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...