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 相关文章推荐
虚拟主机中对PHP的特殊设置
Oct 09 PHP
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php MySQL与分页效率
Jun 04 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
一步一步学习PHP(1) php开发环境配置
Feb 15 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
CI框架文件上传类及图像处理类用法分析
May 18 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 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
Zend的MVC机制使用分析(二)
2013/05/02 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
Angular2进阶之如何避免Dom误区
2018/04/02 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
Python脚本实现网卡流量监控
2015/02/14 Python
Python获取服务器信息的最简单实现方法
2015/03/05 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
德国网上药房:Apotal
2017/04/04 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
一套C++笔试题面试题
2012/06/06 面试题
营业员演讲稿
2013/12/30 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
调任通知
2015/04/21 职场文书
同意报考证明
2015/06/17 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
Pandas数据类型之category的用法
2021/06/28 Python
Spring 使用注解开发
2022/05/20 Java/Android