代码之家  ›  专栏  ›  技术社区  ›  Girish

php导入csv特殊字符问题

  •  1
  • Girish  · 技术社区  · 6 年前

    我试图通过“fgetcsv()”函数在php中导入CSV,但CSV文件有一些隐藏字符,这些字符没有显示在Excel或记事本中,我只能在浏览器控制台中看到一个字符。

    enter image description here

    我试图通过以下方式删除这些字符 trim() ,则, utf8_decode() preg_replace() 但还没有找到解决方案。

    trim($value, ' \t\n\r\0\x0B\x00..\x1F\x09\0x0A');
    preg_replace($value, '/[\x00-\x1F\x7F]/u', '', $value);
    

    最后,我面临以下问题 CSV file ,请提供解决方案,如何消除红点(.)导入中的字符。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Nigel Ren    6 年前

    看起来这有一个UTF8的字节顺序标记(从 https://en.wikipedia.org/wiki/Byte_order_mark )在文件的开头。您可以使用删除它。。。

    if ( substr($value,0,3) === chr(239).chr(187).chr(191))    {
        $value = substr($value, 3);
    }
    

    $value = trim($value, chr(239).chr(187).chr(191));