【发布时间】:2011-04-07 13:27:52
【问题描述】:
我有一个脚本,它读取远程 CSV 文件的内容,遍历行,并将数据项添加到数据库中。该文件平均有大约 3000 行,因此有 3000 个产品。
澄清几点:
- 我无法事先控制 CSV 文件中的数据
- 我无权访问/控制创建此 CSV 文件的方式
- CSV 文件每天根据 MySQL 数据库中的数据动态生成一次
问题:
我的脚本只迭代了大约 1300 行然后停止,没有错误,什么都没有。所有文本都用双引号括起来,并且通常 CSV 文件格式正确。奇怪的是:如果我下载 CSV 文件,在记事本 ++ 中打开它并将编码更改为 UTF-8 没有 BOM,将其上传到测试服务器并在该文件上运行我的脚本,我得到了 FULL 3000 个项目和所有没问题。
那么,我假设生成此文件的人需要将数据插入为 UTF-8?因为我无法控制该过程,所以我想知道是否有一种相当简单的方式可以将没有 BOM 编码的 UTF-8 应用于该文件,或者至少将文件内容读入一个变量并重新编码?
非常感谢
【问题讨论】:
-
我会首先排除超时问题,然后检查您的一般方法 - 您有任何代码要分享吗?
-
@tickwallet 我确实 - pastebin.com/fLngbWYu
-
@tickwallet - 没有超时问题,已将最大执行时间设置为 60 分钟,并且可以完全控制服务器,所以我确定问题出在数据本身
标签: php encoding csv character-encoding fgetcsv