用PHP将数据导入到Foxmail


Posted in PHP onOctober 09, 2006

最近小阳做了一个PHP同学录,同学们自己在那里添加或修改姓名、邮箱、OICQ等信息,并保存在mySQL数据库里。某日小阳突然想到,如果能用PHP生成一个文件,供同学们下载并把这些资料导入他们的Foxmail地址簿中,那该多好啊!

说干就干,很快小阳便将这功能推出来了。那是如何实现的呢?这里仅以导出姓名、邮箱和OICQ三项予以说明。

要资料可以导入Foxmail地址簿,当然要先了解一下导入Foxmail地址簿的文件内容和格式。打开Foxmail4.2一个帐户的地址簿,在其菜单栏“工具”-“导入”中可以看到,Foxmail支持两种外部文件的导入:“CSV文件”和“Wab文件”。我们选择生成CSV文件。那么可以导入Foxmail的CSV文件的内容和格式如何呢?让我们先从Foxmail导出一个CSV文件看一下。在Foxmail地址簿中选择一个记录不为空的文件夹,执行“工具”-“导出”- “文本文件”,保存文件名为“TEMP.CSV”, 在“下一步”的“请选择输出字段”中选择“姓名”、“电子邮箱地址”和“OICQ”,点击“完成”后便在指定路径生成了“TEMP.CSV”文件了。如果你装了微软office系列,会发现这是一个用EXCEL默认打开的文件,实际上它是EXCEL的逗号分隔值文件,双击打开后,其界面如图所示。

用PHP将数据导入到Foxmail

我们在这种情况下还是无法知道它的写入格式的。将“TEMP.CSV”文件改为用记事本打开,便可以发现它的格式非常简单:如图,文件第一行是Foxmail地址簿的字段,其它行是字段对应的值,各字段和值用英文逗号分隔。所以我们在PHP中按这种格式生成CSV文件,别人就可以下载并导入他们的Foxmail中了!

用PHP将数据导入到Foxmail

不过还有一个问题需要解决,那就是既然文件中以逗号作为分隔值,如果数据库记录中有英文逗号(注:以下符号若无特别说明皆指英文符号)怎么办?当然你可以先将数据中的逗号替换为中文逗号,但其实还有一个方法,那就是如果CSV文件相应的字段两端加上双引号(“即" "”)作分隔值,其间的英文逗号不作为分隔值,且字段中连续两个英文双引号(即“"”)也只作为一个显示,而不作为分隔值。

有了这些认识,我们就可以编写导出CSV文件的PHP文件了:

在服务器上运行上述PHP文件,下载回来的“tofoxmail.csv”文件用记事本打开如图所示。

在Foxmail地址簿中点击“工具”-“导入”-“CSV文件”……,数据库中一大堆的资料一下子就全被导入了,这个主意还不错吧!

用PHP将数据导入到Foxmail

(以上程序在Apache+PHP4+mySQL和IIS+PHP4+mySQL中皆测试通过。)

PHP 相关文章推荐
DISCUZ 分页代码
Jan 02 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
php UTF8 文件的签名问题
Oct 30 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
php使用mysqli向数据库添加数据的方法
Mar 20 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
php处理多图上传压缩代码功能
Jun 13 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 PHP
Laravel5.1 框架表单验证操作实例详解
Jan 07 PHP
PHP 中的一些经验积累
Oct 09 #PHP
详细介绍PHP应用提速面面观
Oct 09 #PHP
基于PHP与XML的PDF文档生成技术
Oct 09 #PHP
利用js调用后台php进行数据处理原码
Oct 09 #PHP
PHP初学者头疼问题总结
Oct 09 #PHP
php代码优化及php相关问题总结
Oct 09 #PHP
PHP数据库开发知多少
Oct 09 #PHP
You might like
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
学习ExtJS Panel常用方法
2009/10/07 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
javascript实现uploadify上传格式以及个数限制
2015/11/23 Javascript
浅谈Jquery中Ajax异步请求中的async参数的作用
2016/06/06 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
Node.js+jade+mongodb+mongoose实现爬虫分离入库与生成静态文件的方法
2017/09/20 Javascript
vue-cli项目中怎么使用mock数据
2017/09/27 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
JS闭包经典实例详解
2018/12/20 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
深入讲解Java编程中类的生命周期
2016/02/05 Python
python让列表倒序输出的实例
2018/06/25 Python
Python实现的简单计算器功能详解
2018/08/25 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
法国珠宝店:CLEOR
2017/01/29 全球购物
手工制作的意大利太阳镜和光学元件:Illesteva
2019/01/19 全球购物
添柏岚英国官方网站:Timberland英国
2019/11/28 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
laravel使用redis队列实例讲解
2021/03/23 PHP
电气自动化大学生求职信
2013/10/16 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
企业读书活动总结
2014/06/30 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
财务部岗位职责
2015/02/03 职场文书
重阳节主题班会
2015/08/17 职场文书
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL