从CSV文件中提取数据时获取空字段

时间:2011-02-27 11:49:21

标签: php csv

我有这段代码:

$row = 1;
if (($handle = fopen("data.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}

并且CSV文件包含阿拉伯语的数据,当我在浏览器中打开页面时,我得到所有行中第二个字段的空值,但在CSV文件中它包含数据。因此,当存在阿拉伯数据时,我会在页面中显示空白 - 并非所有阿拉伯数据,其中大多数 -

当我放置一个不包含阿拉伯数据的文件时,每件事都可以。

有什么问题?

编辑:

来自CSV文件的

行:

enter image description here

我将它们添加为照片,因为复制/过去不会以正确的顺序放置数据

我输入了这张照片:

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为问题是由于用于创建CSV的不同语言/字符集,并将其读入PHP。

如果字符集不相同,PHP会尝试进行转换。在这种情况下,看起来转换失败,导致数据丢失。

答案 1 :(得分:0)

我也试过不同语言的数据,但是当我使用php代码读取csv文件时,数据被转换为 ???????? 。在csv文件中尝试了不同的语言数据,但没有找到成功的结果。所以我得出一个结论,如果我们想要处理涉及多种语言的电子表格文件,那么英语 PHPExcel 将是最佳选择。这是一个很棒的图书馆。它肯定会帮助你。