2016-07-09 4 views
0

Я новичок в этом форуме, а также новичок в PHP, я строю некоторые основные функции на тестовом сайте, а я узнаю немного больше о том, как использовать PHP. Один из текущих проектов, в которых я экспериментирую, - это объединение двух каталогов CSV-файлов.Использование PHP для объединения нескольких файлов CSV

Я надеялся использовать GLOB как своего рода подстановочный знак для сбора файлов в каждом каталоге, а затем их комбинировать. Я знаю, что способ, которым я использую ниже, не очень эффективен с точки зрения памяти, но это только для того, чтобы учиться. Проблема, с которой я столкнулась, - установить команду GLOB для загрузки всех моих файлов CSV, а затем получить эту переменную в файл_get_contents.

Вот мой код ..

$files = glob("http://www.website.com/1/*.csv"); 
foreach($files as $filepath) { 
    if ($handle = fopen($filepath, "r")) { 
    // ... 
    } 
} 
$files2 = glob("http://www.website.com/35/*.csv"); 
foreach($files2 as $filepath2) { 
    if ($handle2 = fopen($filepath2, "r")) { 
    // ... 
    } 
} 
file_put_contents('final_data.csv', 
    file_get_contents($files) . 
    file_get_contents($files2) 
); 

ответ

0

При использовании Glob результирующий массив не содержит базовый путь, так что вы должны добавить его, как это:

$basePath = '/path/to/csv'; 
foreach ($files = glob("$basePath/dir1/*.csv") as $filePath) 
{ 
    echo "$basePath/$filePath"; 
    // 
} 

Было бы также имеет смысл читать с локального пути вместо удаленного URL.

Смежные вопросы