这里面不允许通过扩张名。怕别人改扩张名
还有我安装里面是否包含逗号不行,因为有的文件是读出的内容也是乱码?结果它就会把乱码读成逗号?
而且我需要判断.csv文件的严谨方法和理论,不能想当然的。其实仅按逗号肯定是不严谨的啊,其实是乱码可能变成逗号,其二一个文件里面有一个逗号算是合格的csv文件了谢谢,求高手

解决方案 »

  1.   

    试试str_getcsv解析     
    http://php.net/manual/en/function.str-getcsv.php
    用是否error来判断
      

  2.   

    不行的,她只会按照你已经是,csv字符串的格式来解析你的,最后不是false 应该是乱码,对于乱码更是无法下手我
    array str_getcsv ( string $input [, string $delimiter = ',' [, string $enclosure = '"' [, string $escape = '\\' ]]] )
    返回数组  非error
      

  3.   

    任何情况下都不会因读取逗号而导致乱码csv文件是文本文件,唯一可识别的地方就是每行都有相等数量的列分隔符(默认是逗号)
    考虑到内容中可能存在逗号(此时内容需要用引号括起),当检测到80%以上行的列分隔符数量相等时,就可认为是合格的csv文件另外非标准的csv,即字符类型的内容未用双引号括起的csv。至少在 php5.3 for win 是无法用
    fgetcsv 或 str_getcsv 函数正确读取的
      

  4.   

    如果你把jpg或其他类型的让fgetcsv读,他就把你读出乱码
      

  5.   

    本帖最后由 xuzuning 于 2012-08-23 08:56:43 编辑
      

  6.   

    全称  Comma Separated Values
    编辑本段
    规则  1 开头是不留空,以行为单位。
      2 可含或不含列名,含列名则居文件第一行。
      3 一行数据不垮行,无空行。
      4 以半角逗号(即,)作分隔符,列为空也要表达其存在。
      5 列内容如存在半角逗号(即,)则用半角引号(即"")将该字段值包含起来。
      6 列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
      7 文件读写时引号,逗号操作规则互逆。
      8 内码格式不限,可为 ASCII、Unicode 或者其他。
      9 不支持特殊字符
      

  7.   

    csv 文件表达的是一个阵列?
    这个是值得思考和调研的一个问题。
      

  8.   

    我这样写不行吗?那就不是csv文件了
      

  9.   

    你希望用户的csv是什么格式?另外对于文件来说,没有乱码的概念,只有字节的概念,
    乱码只是若干字节不能在指定的字符集(比如GB2312)里显示而已。
      

  10.   

    找一个csv导成其他格式的类 能导成功的就是 不能的就不是,这曲线救国了吧
      

  11.   

    都跟你说了,这个等于没说?
    要是你的一个word里面也有逗号,你读出内容,请问你知道这个逗号是分割符还是有效字符吗?
    你可以按照逗号来读取一个.csv文件但是你仅用有没有逗号来区别是不是。csv文件  这个太牵强。理由太不充分这个逗号不是充要条件
      

  12.   


    建议你还是看看CSV的格式标准吧。逗号就是分隔符,内容中有逗号要用""括起来如果有引号的要转义。
    比如:以下格式就是合法的
    1, "2,3", "3,4"str_getcsv这样的csv函数都是实现这些标准的,并没有人说它的实现就是逗号分割