Learn

The forum of documents and methods for studying - Lượm lặt kiến thức


    CONVERT LD2 TO TXT, CHUYỂN LINGOES DICTIONARY SANG MYSQL

    avatar
    congdantoancau

    Tổng số bài gửi : 633
    Tiền xu Ⓑ : 1732
    Được cảm ơn № : 27
    Ngày khởi sự Ngày khởi sự : 12/05/2014

    CONVERT LD2 TO TXT, CHUYỂN LINGOES DICTIONARY SANG MYSQL Empty CONVERT LD2 TO TXT, CHUYỂN LINGOES DICTIONARY SANG MYSQL

    Bài gửi by congdantoancau 13th May 2015, 01:54

    link download:  https://drive.google.com/file/d/0B4nqOsoZZZrUa1VLenQ5eW13NDA/view?usp=sharing

    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
    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
    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

    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:


    Code:
    <?php
     
    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 database
     
    for($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
     
     
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="refresh" content="2" />
    </head>
    <body>
    <p>hehe</p>
    </body>
    </html>


    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
    Thế là xong!

    Nguyenduchanh blog


      Hôm nay: 25th November 2024, 18:43