0

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

提要中的每个文件都是纯文本格式,分为列和行。每条记录都有相同的字段集。以下是每个字段和记录的分隔符:

字段分隔符 (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 的操作。

提前致谢,

格雷格

4

2 回答 2

0

PHP 无法读取大于 2gb 的文件(32 位限制)。

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

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

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

于 2010-07-09T16:10:27.550 回答
0

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

当您在一行上使用 fgetcsv() 时,它将返回一个包含该行内容的数组。因为你有几行,所以把函数放在一个 while() 循环中(看例子#1

于 2010-10-19T17:12:13.580 回答