LoginSignup
6
5

More than 5 years have passed since last update.

CSVファイルを取り込む(HTML、jQuery、PHP)

Last updated at Posted at 2015-10-28

CSVファイルを取り込む

フォームからCSVファイルを取り込んで、読み込んだCSVデータをDB登録する。

・参照ボタンをクリックして取込みファイルを選択後、取込みボタンをクリックでDB登録という処理。

スクリーンショット 2015-10-28 10.22.26.png

実装サンプルはこんな感じ。
当たり前ですがjQueryのライブラリは読み込んでおく。

importCsv.html
<form id='csv' class="form-horizontal">
    <div class="form-group">
        <label class="col-md-2 control-label" for="file_input">取込ファイル</label>
        <div class="col-md-6">
            <input id="fake_input_file" onclick="$('#file_input').click();" 
                readonly="readonly" type="text" value="" class="form-control input-sm" 
                maxlength="12" >
            <input id="file_input" onchange="$('#fake_input_file').val(files[0].name)"
                 style="display: none;" class="form-control input-sm" type="file">
        </div>
        <div class="col-md-2">
            <input onclick="$('#file_input').click();" 
                class="btn btn-default btn-sm btn-block open" type="button" 
                value="参 照">
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-2 col-md-push-8">
            <input type="button" class="btn btn-primary btn-sm btn-block import_csv"
                value="取 込" id="import_csv">
        </div>
    </div>
</form>

PHP側では以下のように処理する。

importCsv.php
    //取り込んだファイルを受け取る
    $file = file($_FILES['file']['tmp_name']);

    //ファイルをエンコード
    mb_convert_variables("UTF-8", "SJIS", $file); 

    //ここから先はそれぞれの仕様、設計、要件に合わせた形で実装してくださいm(_ _)m
    //1行づつ取り出し、登録
    foreach ($file as $line) {
        //csvの1行を配列に変換する
        $line_list = explode(',',$line);
        //DBに登録
        .....
        .....
    }

やり方が分かればお作法的に出来ますね。

※開発環境や文字コードが異なる場合はそれぞれの環境に合わせて対応してください。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5