2010-07-09 14 views
0

我有一个大文件,我想通过PHP读取,然后插入到MySQL的各个领域。如何通过PHP读取批量数据Feed?

供稿中的每个文件都是纯文本格式,分为多列和多行。每个记录都有相同的一组字段。以下是对于每个字段和记录的分隔符:

字段分隔符(FS):SOH(ASCII字符1) 记录分离器(RS):STX(ASCII字符2)+ “\ n” 个

如果我看文件的前几行,就像这样:

#export_dateapplication_idlanguage_codetitledescriptionrelease_notescompany_urlsupport_urlscreenshot_url_1screenshot_url_2screenshot_url_3screenshot_url_4screenshot_width_height_1screenshot_width_height_2screenshot_width_height_3screenshot_width_height_4 
#primaryKey:application_idlanguage_code 
#dbTypes:BIGINTINTEGERVARCHAR(20)VARCHAR(1000)LONGTEXTLONGTEXTVARCHAR(1000)VARCHAR(1000)VARCHAR(1000)VARCHAR(1000)VARCHAR(1000)VARCHAR(1000)VARCHAR(20)VARCHAR(20)VARCHAR(20)VARCHAR(20) 
#exportMode:FULL 

我努力没有地方为了读取这个文件到PHP开始,任何人都可以用基本的PHP读取每个记录帮助,并为每个字段分配一个变量,然后我将能够写入MySQL。一旦我设置了各种字段,我就可以处理写入SQL的问题。

由于提前,

格雷格

回答

0

文件greator超过2GB不能在PHP(32位的限制)被读取。

对于较低的尺寸使用简单fopen功能

和插入MySQL的是macthing模式和插入的所有工作。

如果表的结构每行都是一样的,那么最好是手动一次,然后通过正则表达式或其他函数(如爆炸和分割)提取值来执行插入。

+0

谢谢,fopen会读取文件,但我如何挑选每个字段并将其传递给变量? – kitenski 2010-07-09 16:13:42

+0

该文件的发布行不足以回答或编码该事物。粘贴更多的线条,当前线条集合仅显示结构而非实际值 – Arshdeep 2010-07-09 16:26:12

0

如果每行之间有每个字段之间的分隔符,您可以查看fgetcsv()

当您在一行上使用fgetcsv()时,它将返回包含该行内容的数组。由于你有几行,把功能放在一个while() - 循环(看example #1