我正在尝试导入 EPF 关系数据库。Itunes epf 关系数据库由所有数据库(应用程序、音乐、电视节目、游戏等)的详细信息组成。您可以在此处找到更多信息iTunes EPF 关系数据库我可以导入所有数据库,除了一个未处理的数据库。这个文件大约 6GB。
$field_separator = chr(1);
$record_separator = chr(2)."\n";
$data_appdt=explode($record_separator,file_get_contents('file_path',true));
foreach ($data_appdt as $key => $value)
{
if (substr($value, 0, 1) != '#')
{
if (!empty($value))
{
{
$data_itu_app_dt=explode($field_separator, $value);
$result=$this->admin_model->itunes_app_dt($data_itu_app_dt);
}
}
}
}
上面的代码是在 codeigniter 中完成的,它是导入过程的控制器。这个代码适用于大约 2gb 的文件。但是对于大于它的尺寸它不起作用。也许它读取整个文件和内存不允许它这样做。所以我使用下面的代码来处理更高的文件。
$handle = fopen('file_path', "r") or die("Couldn't get handle");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
$data_appp=explode($record_separator,$buffer);
foreach ($data_appp as $key => $value)
{
if (substr($value, 0, 1) != '#')
{
if (!empty($value))
{
$data_itu_appp=explode($field_separator, $value);
//print_r($data_itu_appp);
$result=$this->admin_model->itunes_appp($data_itu_appp);
}
}
}
}
fclose($handle);
}
它甚至适用于 8gb 文件,并且导入已成功完成。但是对于 6gb 文件,导入不会继续。这是表格的样本数据
1426669253786|329704232|EN|iParrot 短语越南语-意大利语|将越南语短语翻译成意大利语
iParrot Phrase 为即时多语言翻译软件设立了新标准。专为 iPad/iPhone/iPod Touch 设计,备有超过 20 种完美发音的口语供即时使用。iParrot Phrase 分为:问候语、交通、购物和寻求帮助等类别。因此,您可以立即找到所需的句子。为即时访问和轻松而组织,它在出国旅行时特别有用。提供中文、英文、日文、俄文、法文、德文、西班牙文、意大利文、韩文、葡萄牙文、阿拉伯文、泰文和越南文的虚拟流利程度。
- 无需互联网访问!
- 适用于 iPad/iPhone/iPod Touch 的通用应用程序;
- 随时随地学习外语;
- 在屏幕上聆听并练习发音;
- 阿拉伯语、汉语、日语、韩语、俄语和泰语的罗马化发音指南(罗马化/拼音);
- 400条实用旅游短语触手可及;
- 非常适合学生和商务旅客。|iOS 5 支持;用户界面改进;内容修正;错误修复。| http://www.iparrot.info|http://www.iparrot.info|http://a3.mzstatic.com/us/r30/Purple/v4/59/4c/3c/594c3c1d-8081-583a- 0a02-3d07edb41f85/screen320x480.jpeg|http://a5.mzstatic.com/us/r30/Purple/v4/ba/36/43/ba3643ff-1316-a689-a422-c67eff2e1639/screen320x480.jpeg|http:// a2.mzstatic.com/us/r30/Purple/v4/5a/17/43/5a174333-d3c7-6ae5-5e25-6539e3d9e62c/screen320x480.jpeg|320x480|320x480|320x480|http://a2.mzstatic.com/美国/r30/紫色/v4/2e/87/2d/2e872d35-d55b-8910-0f2b-bb9042f57537/screen480x480.jpeg|360x480|
这是来自该数据库的示例数据,它是应用程序详细信息(在上面的示例数据中,我用 | 替换了新字段的 ASCII 字符 (SOH))。实际上,当使用第二个代码进行导入时,当新行出现时,它将它作为 /n 并且导入被破坏。那么有没有办法绕过这个或任何其他方法来处理如此大的文件(6 GB)以进行数据库导入?也许上面的事情有点令人困惑。是否需要任何澄清,然后我会让事情更清楚。寻找一个好的解决方案.. 谢谢大家。