PHP和CSV文件 - 如何检测行尾?

use*_*621 5 php csv newline file

可能重复:
如何从php中的csv文件中提取数据

我在XLS中有一些数据,我将它们保存为CSV,分隔符是**逗号*.然后我试图从这个CSV文件加载数据:

$input = explode("\r\n", fread($file, filesize("my_data.csv")));
print_r($input);
Run Code Online (Sandbox Code Playgroud)

输出:

Array ( [0] => data from the CSV file)
Run Code Online (Sandbox Code Playgroud)

这是问题 - 在数组中始终只是一个项目,其中打印出CSV文件中的所有数据.怎么可能?为什么数组中的项目与CSV文件中的行数不同?

此外,我试图改为"\r\n""\n",但它是一样的.

我要做的是 - 从CSV文件加载每一行,然后处理每一行.

文件示例:

a,b,c,d
e,f,g,h
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

a,b,c,d e,f,g,h

Ray*_*Ray 4

我建议使用 php 内置的 csv 文件读取功能fgetcsv(),而不是创建自己的: http: //php.net/manual/en/function.fgetcsv.php

 if (($handle = fopen($file, "r")) !== FALSE) {
     while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $row = implode (",",$data); //puts back together the row from the csv
        echo $row. "\n"; //assuming you want a visual linebreak on console, add the \n
     }
    fclose($handle);
 }  
Run Code Online (Sandbox Code Playgroud)