PHP解析CSV仅返回第1行
我试图用PHP解析CSV文件并处理这些值,但是我的代码只返回CSV文件第一行的数据 CSV文件如下所示PHP解析CSV仅返回第1行,php,parsing,csv,Php,Parsing,Csv,我试图用PHP解析CSV文件并处理这些值,但是我的代码只返回CSV文件第一行的数据 CSV文件如下所示 C, QXM0039326, , X6, 2288314208 C, QXP0039226, 7021130, X6, 100013427 php如下所示: if (($handle = fopen("easy.csv", "r")) !== FALSE) { while (($data = fgetcsv($handle, 1000, ",",
C, QXM0039326, , X6, 2288314208
C, QXP0039226, 7021130, X6, 100013427
php如下所示:
if (($handle = fopen("easy.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE)
{
// do something with the data here
echo $data[0] . " - ". $data[1] . " - ". $data[2] . "</br>" ;
}
fclose($handle);
}
C - QTM0039326 - 2288314208
这正是我想要的输出,但是对于CSV中的每一行
我试着像这样迭代$data
if (($handle = fopen("easy.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE)
{
// do something with the data here
foreach ($data as $row){
echo $row[0] . " - ". $row[1] . " - ". $row[4] . "</br>" ;
}
fclose($handle);
}
}
除了CSV的每一行,我需要做什么才能得到我想要的结果(即C-QTM0039326-2288314208)?您已经关闭了循环中的文件句柄,因此下一次迭代中没有任何内容 应该是这样的:
if (($handle = fopen("easy.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE)
{
// do something with the data here
echo $data[0] . " - ". $data[1] . " - ". $data[2] . "</br>" ;
}
fclose($handle);
}
if($handle=fopen(“easy.csv”,“r”)!==FALSE){
而($data=fgetcsv($handle,1000,“,”,“\n”)!==FALSE)
{
//对这里的数据做点什么
echo$data[0]。“-”$data[1]。“-”$data[2]。“”;
}
fclose($handle);
}
您已经关闭了循环中的文件句柄,因此在下一次迭代中没有任何内容
应该是这样的:
if (($handle = fopen("easy.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE)
{
// do something with the data here
echo $data[0] . " - ". $data[1] . " - ". $data[2] . "</br>" ;
}
fclose($handle);
}
if($handle=fopen(“easy.csv”,“r”)!==FALSE){
而($data=fgetcsv($handle,1000,“,”,“\n”)!==FALSE)
{
//对这里的数据做点什么
echo$data[0]。“-”$data[1]。“-”$data[2]。“”;
}
fclose($handle);
}
尝试更改这一行。可能是断线有问题
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
试着换一行。可能是断线有问题
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
这仍然只返回第一个结果。我已经编辑了这个问题以结束循环。这仍然只返回第一个结果。我对问题进行了编辑,以结束循环。虽然这不是正确的答案,但它引导我找到了答案。CSV中存在问题,无法识别换行符。我在每一行的末尾添加了一个“;”,并改为while($data=fgetcsv($handle,1000,“;”)!==FALSE),这很有效。在你的回答中,自动检测也起到了作用——所以现在我必须看看CSV,以及它为什么会发出重击线。谢谢虽然这不是正确的答案,但它让我找到了答案。CSV中存在问题,无法识别换行符。我在每一行的末尾添加了一个“;”,并改为while($data=fgetcsv($handle,1000,“;”)!==FALSE),这很有效。在你的回答中,自动检测也起到了作用——所以现在我必须看看CSV,以及它为什么会发出重击线。谢谢