【发布时间】:2013-04-27 03:57:36
【问题描述】:
我有一堆日志纯文本文件,我希望用 php 将它们转换成数据库而不是使用纯文本文件,我拥有的最大日志文件是 14MB,有 26 个日志文件。
我将如何使用 PHP 读取这些文本文件以将它们转换为 SQL?
它们都有相同的格式。
【问题讨论】:
我有一堆日志纯文本文件,我希望用 php 将它们转换成数据库而不是使用纯文本文件,我拥有的最大日志文件是 14MB,有 26 个日志文件。
我将如何使用 PHP 读取这些文本文件以将它们转换为 SQL?
它们都有相同的格式。
【问题讨论】:
大多数情况下,MySQL 会足够聪明地读取文件格式并“好像”插入它,您可以为此使用 LOAD DATA INFILE。您还可以添加“字段终止于”和“行终止于”,两者都将在单引号之间使用正确的值。
LOAD DATA INFILE '/mylog_file.txt' INTO TABLE `my_db`.`my_table` FIELDS TERMINATED BY 'xxx' LINES TERMINATED BY 'xxx' ( first_field, seccond_field );
【讨论】:
使用file_get_contents() 获取日志文件文本 — 将整个文件读入字符串
$file = file_get_contents('log.txt', true);
如果您使用的是 MySQL,请将 $file 变量内容存储在 MEDIUMTEXT 数据类型的字段中。
以下是大小限制
TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
LONGTEXT 4,294,967,295 bytes ~4GB
【讨论】: