FROM: https://nguyenduchanh.wordpress.com/2014/10/28/convert-ld2-to-txt-chuyen-lingoes-dictionary-sang-mysql/
Rảnh rỗi sinh nông nổi, đang tự làm cái project về từ điển cho riêng mình thì tình cờ tìm được một tools convert dữ liệu từ lingo sang txt muốn chia sẻ với mọi người.
link download: https://github.com/windylea/lingoes-converter
Chuyển từ file lingo sang txt
Cách sử dụng lingoes-converter-master:
Đưa lên website của bạn hoặc chay localhost cũng được, url có cấu trúc
http://yourwebsite/lingoes-converter-master/converter.php?input=path/to/somefile.ld2&encodingWord=UTF-8&encodingDef=UTF-8
Đưa lên website của bạn hoặc chay localhost cũng được, url có cấu trúc
http://yourwebsite/lingoes-converter-master/converter.php?input=path/to/somefile.ld2&encodingWord=UTF-8&encodingDef=UTF-8
Giải thích một chút về các param:
input: đường dẫn tới file ld2 (file chứa dữ liệu về từ điển của lingo)
encodingWord: encoding của file nguồn
encodingDef: encoding của file đích
input: đường dẫn tới file ld2 (file chứa dữ liệu về từ điển của lingo)
encodingWord: encoding của file nguồn
encodingDef: encoding của file đích
Lưu ý: lingoes lưu trữ dữ liệu dưới dạng: từ => miêu tả về từ dó
Do vậy khi convert sang file txt nên phân biệt hai phần này bằng một ký tự đặc biệt để dễ explode ra cho việc insert vào mysql.
Ở đây mình dùng ký tự “|”. Có thể sửa lại ở file LingoesConverter.php dòng 493
Do vậy khi convert sang file txt nên phân biệt hai phần này bằng một ký tự đặc biệt để dễ explode ra cho việc insert vào mysql.
Ở đây mình dùng ký tự “|”. Có thể sửa lại ở file LingoesConverter.php dòng 493
Chuyển từ txt sang mysql
Ở đây mình lấy file English-Vietnamese.ld2 (file này có trong link download) làm ví dụ. Sau khi chạy đường dẫn http://yourwebsite/lingoes-converter-master/converter.php?input=English-Vietnamese.ld2&encodingWord=UTF-8&encodingDef=UTF-8 ta sẽ được file English-Vietnamese.txt ở dùng thư mục. File này có khoảng 139205 dòng, rất lớn nên không thể insert chỉ bằng 1 câu lệnh sql
Việc tạo bảng và insert dữ liệu vào bảng đó mình sẽ không nói nữa vì mọi người quá quen việc này rồi. Ở đây mình chỉ hướng dẫn viết một đoạn mã đọc từng dòng (vài chục dòng) một để insert vào database cho đến hết file
Đoạn mã đó như sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| session_start(); // bên dưới sử dụng session nên phải khai báo cái này, để lưu lại thông tin đã chạy đến dòng nào rồi$start = isset($_SESSION['start']) ? $_SESSION['start'] : 0; // bắt đầu từ 0 sau khi f5 lần 1 sẽ là 200, lần 2 là 400 ...$num = 200; // đọc 200 dòng một lúc để insert vào databasefor($i = $start; $i < ($start + $num); $i++){ if($i >139205 ) { // for sẽ dừng khi đọc hết file echo "done"; exit;}$file = "Vietnamese-English.txt";$lines = file( $file );$line = $lines[$i];$line = explode("|",$line);// insert to dbđoạn này các bạn tự viết }?> |
hehe
Bạn lưu file này vào thư mục vừa download về ví dụ tên file là a.php
sau đó bắt đầu chạy http://yourwebsite/lingoes-converter-master/a.php
Lưu ý: đoạn mã html bên dưới không có tác dụng gì ngoài việc f5 liên tục đường dẫnhttp://yourwebsite/lingoes-converter-master/a.php mỗi khi chạy xong. Thời gian delay là 2 giây
sau đó bắt đầu chạy http://yourwebsite/lingoes-converter-master/a.php
Lưu ý: đoạn mã html bên dưới không có tác dụng gì ngoài việc f5 liên tục đường dẫnhttp://yourwebsite/lingoes-converter-master/a.php mỗi khi chạy xong. Thời gian delay là 2 giây
Thế là xong!
No comments:
Post a Comment