用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 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
PHP XML error parsing SOAP payload on line 1
Jun 17 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
php类常量用法实例分析
Jul 09 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
Sep 11 PHP
PHP 类与构造函数解析
Feb 06 PHP
php实现图片按比例截取的方法
Feb 06 PHP
php实现的二分查找算法示例
Jun 20 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
php修改word的实例方法
Nov 17 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
php array_flip() 删除数组重复元素
2009/01/14 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
2013/06/20 PHP
PHP中变量引用与变量销毁机制分析
2014/11/15 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
jQuery对象[0]是什么含义?
2010/07/31 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
JavaScript队列、优先队列与循环队列
2016/11/14 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
vue源码入口文件分析(推荐)
2018/01/30 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
Angular请求防抖处理第一次请求失效问题
2019/05/17 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python  pip安装lxml出错的问题解决办法
2017/02/10 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
python3 下载网络图片代码实例
2019/08/27 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
C语言编程练习
2012/04/02 面试题
护士自我介绍信
2014/01/13 职场文书
小学教师评语大全
2014/04/23 职场文书
入党综合考察材料
2014/06/02 职场文书
党员检讨书
2014/10/13 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP