首页 > Web开发 > 详细

php函数fgetcsv()中的参数enclosure的解读

时间:2014-08-06 21:45:12      阅读:543      评论:0      收藏:0      [点我收藏+]

原型 fgetcsv(resource fp, int length [, string delimiter [, string enclosure [, string escape]]])

对于enclosure的解释是围绕字段的字符。

参考http://blog.ifeeline.com/217.html的说明:

包含逗号, 双引号, 或是换行符的字段必须放在引号内(只有三个特殊值时需要特别处理)。
字段内部的引号必须在其前面增加一个引号来实现引号的转码。
分隔符逗号前后的空格 可能不会被修剪掉。
元素中的换行符将被保留下来。

对应于下面例子,就会比较容易理解上述说明了。

字段1            字段2                        字段3

goog    veture"vision,good"             abc

 

对于上面一行的三个字段,假如我想用fgetscv()把它读出来并存到array去,就必须对csv文件中存储的格式进行限定。

csv存储的内容有l两种情况:

(1)情况一, 直接是goog,veture"vision,good",abc

这样你会发现get出来的不是你想要的东西。其array输出是

Array ( [0] => goog [1] => vetur"evision [2] => good" [3] => abc )

(2)情况二,csv里的内容是goog,"veture""vision,good""",abc

这是根据上面的说明对原有内容进行修改过的。加上了围绕字符双引号。

其array输出是我们想要的

Array ( [0] => goog [1] => veture"vision,good" [2] => abc )

 

对于上面说明的一些补充,若字段内含有逗号,仅需将该字段用双引号括住即可,无需再在逗号前面加双引号。

 

 

另外,对于最后一个参数escape,官方解释是设置转义字符。对此不太理解,希望有人可以提供例子进行解释。

php函数fgetcsv()中的参数enclosure的解读,布布扣,bubuko.com

php函数fgetcsv()中的参数enclosure的解读

原文:http://www.cnblogs.com/weili-wu/p/3895259.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!