如何通过PHP读取批量数据源?

时间:2010-07-09 16:02:41

标签: php import flat-file

我有一个大文件,我想通过php阅读,然后将各种字段插入MySQL。

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。

提前致谢,

格雷格

2 个答案:

答案 0 :(得分:0)

文件大于2gb,不能用PHP读取(32位限制)。

对于较小的尺寸,请使用简单的fopen功能

插入mysql是macthing模式和插入的全部工作。

如果表的结构每行相同,那么最好先手动一次,然后通过正则表达式或其他函数(如explode和split)提取值来执行插入。

答案 1 :(得分:0)

如果每一行都有分隔符,您可以查看fgetcsv()

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