提问人:mrdigitalis 提问时间:6/22/2022 最后编辑:Philmrdigitalis 更新时间:6/22/2022 访问量:814
PHP fopen 或file_get_contents使用 fgetcsv 读取 CSV 文件
PHP fopen or file_get_contents reading CSV files with fgetcsv
问:
我有一个问题。在我的原始代码中,我打开了一个文件:
$file = fopen ("files/bla1.exp" , "r" );
打开文件后,我想逐行读取CSV:
$aCsvLine = fgetcsv($file,"0",";",'"');
这很好用,但现在问题来了。现在我想打开多个文件,然后使用 fgetcsv 逐行读取。
这是nog工作:
if($sDate == "2022-07-18" || $sDate == "2022-07-19" || $sDate == "2022-07-20" || $sDate == "2022-07-21" || $sDate == "2022-07-22")
{
$file = fopen ("files/bla1.exp" , "r" );
$file = fopen ("files/bla2.exp" , "r" );
$file = fopen ("files/bla3.exp" , "r" );
}
而我的另一篇文章中的这个也不起作用,因为缺少句柄:
$file = '';
if ($sDate == "2022-07-18" || $sDate == "2022-07-19" || $sDate == "2022-07-20" || $sDate == "2022-07-21" || $sDate == "2022-07-22")
{
$file .= file_get_contents("files/bla1.exp");
$file .= file_get_contents("files/bla2.exp");
$file .= file_get_contents("files/bla3.exp");
}
如何首先打开我的 csv 文件并将它们附加到一个文件中并逐行读取。我希望我把我的问题说清楚了。
答:
1赞
Phil
6/22/2022
#1
创建一个文件名数组并迭代它。在每次迭代中,打开文件并使用 开始读取。fgetcsv()
$files = ['files/bla1.exp', 'files/bla2.exp', 'files/bla3.exp'];
$allRows = [];
foreach ($files as $file) {
$fh = fopen($file, 'rb');
while (($row = fgetcsv($fh, 0, ';', '"')) !== false) {
$allRows[] = $row; // ¯\_(ツ)_/¯
}
fclose($fh);
}
评论
$file1
$file2
$files = [ fopen(), fopen(), ...]