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 连接mssql数据库 初学php笔记
Mar 01 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
CodeIgniter框架常见用法工作总结
Mar 16 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 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/03/22 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
php的扩展写法总结
2019/05/14 PHP
php文件包含的几种方式总结
2019/09/19 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
bootstrapValidator 重新启用提交按钮的方法
2017/02/20 Javascript
微信小程序 后台登录(非微信账号)实例详解
2017/03/31 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python生成短uuid的方法实例详解
2018/05/29 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Python利用scapy实现ARP欺骗的方法
2019/07/23 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
.net软件工程师面试题
2015/03/31 面试题
电气专业推荐信范文
2013/11/18 职场文书
丑小鸭教学反思
2014/02/03 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
故意杀人案辩护词
2015/05/21 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers