zoukankan      html  css  js  c++  java
  • fgetcsv函数的“陷阱”

           今天遇到一个奇怪的问题,前几天写的一个PHP解析CSV文件格式的代码,在本地运行正常,到了测试站上,就感觉像泄了气的球一样,不顶用了,而且只要是中文输入,总是不能正确读取,开始的时候怀疑是版本问题,因为本地装的是5.3的最新版,所以总是有所怀疑,可是看了手册,却推翻了我的这个问题。正纠结着,而且如果说无论输入什么都不能解析么,那也就罢了,奇就奇在,我第一行的中文他解析没有问题,第二行开始

    的所有中文,他都解析不了,读取出来的都是空字串。也排除了我怀疑的编码问题。

           后来在手册中找到如下一句话 

       1: Note:
       2:  
       3: Locale setting is taken into account by this function. If LANG is e.g. en_US.UTF-8, files in one-byte encoding are read wrong by this function. 

    然后google了下fgetcsv,才发现,原来确实是这样,fgetcsv函数对区域的设置是敏感的,对于单字节编码的文件读取时会出现错误。在网上也看到类是可行的解决方案:在执行之前先设置setlocale();地区信息。不过没验证该方法的可行度。

          最后是用fget来代替该方法。

    Technorati 标签: php,fgetvsc,中文读取不倒
  • 相关阅读:
    gitlab 重置密码
    _string 灵活查询
    删除前面,删除后面
    HTTPS
    PHP正则匹配价格
    PHP LUHN算法验证银行卡
    PHP 与操作判断奇偶
    PHP与Cookie
    检查字符串是否存在
    php密码正则匹配
  • 原文地址:https://www.cnblogs.com/xiaoyaoxia/p/2047859.html
Copyright © 2011-2022 走看看