2011-02-27 52 views
1

我有这样的代码:越来越空字段从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文件containes数据,当我在浏览器中打开网页,我得到空值的第二场在所有行中,但在CSV文件中包含数据。所以当有阿拉伯语的数据,我得到它的页空的时候显示它- 不是所有的阿拉伯数据,其中大部分 -

当我把不包含阿拉伯语数据的文件,每一件事情是确定的。

什么问题?

编辑:从CSV文件

线:

enter image description here

我加入他们的照片,因为当复制/过去会不会把数据按正确的顺序

和我在此照片的输出:

enter image description here

+2

可以提供一对夫妇的输入线为我们测试用。 – Gordon 2011-02-27 12:18:58

+0

如果您直接在浏览器中查看CSV文件,是否显示阿拉伯文? – 2011-02-27 14:54:16

+0

@tandu:是的,我可以看到他们时,我设置页面代码到Windows 1256 – Saleh 2011-02-27 14:58:28

回答

0

我相信不同的语言/字符集被用于创建CSV,并阅读到PHP的问题是由于。

如果字符集是不一样的,PHP试图进行的转换。在这种情况下,它看起来像转换失败,使数据似乎丢失。

0

我还试图用不同的语言的数据,但是,当我读到使用PHP代码csv文件,该数据被转换成????????。在csv文件中尝试了很多不同的语言数据,但没有找到成功的结果。于是,我来到了一个结论,如果我们要处理的是涉及其他多国语言英语PHPExcel将是最好的选择电子表格文件。这是一个很棒的图书馆。它肯定会帮助你。