fgetcvs在linux的问题


Posted in PHP onJanuary 15, 2012

看到有人在有汉字的字符串 前加一个 ‘ 或是任意半角符号,让bug将其除掉,不过这样做太麻烦了。最后呢,找来一个模拟fgetcsv功能的函数。

function __fgetcsv(& $handle, $length = null, $d = ‘,', $e = ‘”‘) { 
$d = preg_quote($d); 
$e = preg_quote($e); 
$_line = “”; 
$eof=false; 
while ($eof != true) { 
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length)); 
$itemcnt = preg_match_all(‘/' . $e . ‘/', $_line, $dummy); 
if ($itemcnt % 2 == 0) 
$eof = true; 
} 
$_csv_line = preg_replace(‘/(?: |[ ])?$/', $d, trim($_line)); 
$_csv_pattern = ‘/(‘ . $e . ‘[^' . $e . ']*(?:' . $e . $e . ‘[^' . $e . ']*)*' . $e . ‘|[^' . $d . ']*)' . $d . ‘/'; 
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches); 
$_csv_data = $_csv_matches[1]; 
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) { 
$_csv_data[$_csv_i] = preg_replace(‘/^' . $e . ‘(.*)' . $e . ‘$/s', ‘$1′ , $_csv_data[$_csv_i]); 
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]); 
} 
return empty ($_line) ? false : $_csv_data; 
}
PHP 相关文章推荐
杏林同学录(二)
Oct 09 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
Jun 25 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
php计算两个日期时间差(返回年、月、日)
Jun 19 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
php实现从上传文件创建缩略图的方法
Apr 02 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
thinkPHP框架对接支付宝即时到账接口回调操作示例
Nov 14 PHP
PHP异步调用socket实现代码
Jan 12 #PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 #PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 #PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 #PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 #PHP
php通过COM类调用组件的实现代码
Jan 11 #PHP
关于IIS php调用com组件的权限问题
Jan 11 #PHP
You might like
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
2015/11/10 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
PHP精确计算功能示例
2016/11/29 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
js arguments.callee的应用代码
2009/05/07 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
微信小程序 解决请求服务器手机预览请求不到数据的方法
2017/01/04 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
SQLite3中文编码 Python的实现
2017/01/11 Python
pandas修改DataFrame列名的方法
2018/04/08 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
编程用JAVA解析XML的方式
2013/07/07 面试题
环保专业大学生职业规划设计
2014/01/10 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
医院见习报告范文
2014/11/03 职场文书
实习计划书范文
2015/01/16 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python