zmq175
V2EX  ›  PHP

如何将一个 txt 文件中的多个字段导入 mysql!

  •  
  •   zmq175 · Jan 31, 2015 · 5767 views
    This topic created in 4145 days ago, the information mentioned may be changed or developed.

    之前试了好几次都不成功。
    txt的一部分如下:
    a[ei, ә]art.一个
    an[әn, æn]art.一个
    ability[ә'biliti]n.能力,才干
    able['eibl]a.有才能的,能够的
    about[ә'baut]prep.关于
    above[ә'bʌv]prep.在…之上
    accident['æksidәnt]n.意外;偶然事故
    according to[әˌkɔ:diˌ tu:]依照
    achieve[ә'tʃi:v]vt.完成
    across[ә'krɔs]ad.交叉;横过
    act[ækt]n.行为;举动
    action['ækʃәn]n.行动;动作
    active['æktiv]a.活动的;活跃的
    actual['æktʃuәl]a.实际的;真实的
    adapt[ә'dæpt]vt.使适应;使适合
    add[æd]v.增加
    addition[ә'diʃәn]n.加;加起来
    address[ә'dres]n.地址;住址
    admire[әd'maiә]vt.钦佩;赞美;赞赏
    admit[әd'mit]vt.承认,供认
    advance[әd'vɑ:ns]n.前进;增进

    16 replies    2015-01-31 19:21:21 +08:00
    zmq175
        1
    zmq175  
    OP
       Jan 31, 2015
    存入一个数据库表。。。
    里面有自增的id。
    英文,音标,解释个为一列。。。
    大一学生。。。表示搞不定!求助!
    haiyang416
        2
    haiyang416  
       Jan 31, 2015 via Android
    不要弄那么复杂,写个正则式匹配下就行。
    如果有能力,写状态机弄个词法分析也可以,
    你是在哪里出了问题?
    yfdyh000
        3
    yfdyh000  
       Jan 31, 2015   ❤️ 1
    [和]替换成,不就是CSV格式了吗(排除特殊情况),然后不难吧。
    vibbow
        4
    vibbow  
       Jan 31, 2015
    用navicat直接导入就行了。
    haiyang416
        5
    haiyang416  
       Jan 31, 2015 via Android
    推荐先用正则把整个文件按行分割成你需要的几个部分,最好另存到新文件,人工检查一下分割是否正确。
    然后读取分割后的文件写入数据库,文件大的话按行读,不要一次性塞内存。
    haiyang416
        6
    haiyang416  
       Jan 31, 2015 via Android
    如果对释义没什么格式要求就用这楼的方法 @yfdyh000
    DonaidTrump
        7
    DonaidTrump  
       Jan 31, 2015 via iPhone
    随便用一种语言读取txt,然后处理插入数据库
    tempdban
        8
    tempdban  
       Jan 31, 2015 via Android
    excel分列导出csv
    for8ever
        9
    for8ever  
       Jan 31, 2015
    <div>fff</div>
    zmq175
        10
    zmq175  
    OP
       Jan 31, 2015 via iPhone
    @haiyang416 就是导入的时候乱掉了
    xiaowu365
        11
    xiaowu365  
       Jan 31, 2015
    编码 注意下,CSV 导入应该没问题
    KnightChu
        12
    KnightChu  
       Jan 31, 2015
    @zmq175 用 Python 或者 Ruby 什么的处理一下,然后文件输出吧
    chunyang
        13
    chunyang  
       Jan 31, 2015
    把 txt 转化成用 tab 隔开的 csv,之所以用 tab,是因为数据中含有空格和逗号。

    可以用 GNU Awk 完成这一任务,即根据方括号(之前、之中、之后)把数据分成 3 组:单词短语、音标、解释:

    <script src="https://gist.github.com/xuchunyang/b293bd5f6c4465b9dd3c.js"></script>

    csv 导入 mysql 应该比较简单,我没用过 mysql,具体不了解。
    zmq175
        14
    zmq175  
    OP
       Jan 31, 2015
    最后打算用navicat了!!!谢谢大家
    zmq175
        15
    zmq175  
    OP
       Jan 31, 2015
    @chunyang 音标有少数出现了乱码的情况。。。编码是utf-8无误。。。
    chunyang
        16
    chunyang  
       Jan 31, 2015
    @zmq175 具体原因不清楚,可能音标中的字符成分比较复杂。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2860 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 05:49 · PVG 13:49 · LAX 22:49 · JFK 01:49
    ♥ Do have faith in what you're doing.