有谁知道我可以在哪里找到 SQL 转储形式的英语单词列表?
我在网上找到了一个单词列表,但它是一个很大的纯文本文件;单词由换行符分隔。我尝试编写一个 PHP 脚本来循环遍历单词并将它们插入到数据库中,但在读取大文件时很快遇到了内存问题。我已将文件拆分为 4 个较小的文件,但仍然出现内存错误。如果有人知道如何将我当前的文件转换为更导入的朋友格式,请告诉我。
有谁知道我可以在哪里找到 SQL 转储形式的英语单词列表?
我在网上找到了一个单词列表,但它是一个很大的纯文本文件;单词由换行符分隔。我尝试编写一个 PHP 脚本来循环遍历单词并将它们插入到数据库中,但在读取大文件时很快遇到了内存问题。我已将文件拆分为 4 个较小的文件,但仍然出现内存错误。如果有人知道如何将我当前的文件转换为更导入的朋友格式,请告诉我。
使用LOAD DATA INFILE。从文档:
LOAD DATA INFILE 语句以非常高的速度将文本文件中的行读取到表中。
像这样的东西应该工作:
LOAD DATA INFILE 'your/path/your_file.txt' INTO TABLE your_table (your_column_name);
http://corpora.uni-leipzig.de/download.html
几个不同语言(包括英语)的语料库......
您的方法应该可以正常工作,您只需要更改读取文件的方式。我猜你正在使用file_get_contents
或类似的东西来读取整个文件,当你可以逐行执行并避免内存问题时。尝试类似fscanf():
$handle = fopen("yourfile.txt", "r");
while ($info= fscanf($handle, "%s\t%s\t%s\n")) {
list ($field1, $field2, $field3) = $info;
//... do something with the values
}
fclose($handle);