スポンサードリンク

wordpress
wordpress

前回はプラグインをメニューに表示をさせました。

今回は、プラグインの内容を

メニューを押したら表示させるようにします。

スポンサードリンク

プラグインの内容を表示させる

前回作ったcsv-uploader-plugin.phpに

表示させる内容がありました。

//プラグインの表示
function csv_upload(){
	echo "<h2>CSVアップローダー</h2>";
}

ユーザー関数のcsv_uploadが表示をさせてる部分なので

ここを変更します。

・・・
//プラグインの表示
function csv_upload(){
?>
<div class="wrap">
  <h2>CSVアップローダー</h2>
  <form action="" method="post" enctype="multipart/form-data">
    <table>
      <tr>
        <th>ファイルを選択<br><span class="f10">※CSVファイルのみ</span></th>
        <td><input name="csv" type="file" size="30"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="アップロード"></td>
      </tr>
    </table>
  </form>
</div><!-- end .wrap -->
<?php
}
・・・

上記のように書くと

CSVアップロード
CSVアップロード

こんな感じで表示されます。

内容自体はHTMLと同じですね。

CSVファイルをPOSTして表示させる

次は、POSTしてCSVファイルを表示させてみましょう。

先ほどのユーザー関数のcsv_uploadに

POSTを受け取る内容を記述します。

//プラグインの表示
function csv_upload(){
//追記文ここから
  if(is_uploaded_file($_FILES["csv"]["tmp_name"])){
    //csvかチェック
    if(pathinfo($_FILES["csv"]["name"], PATHINFO_EXTENSION) == "csv"){
      $tmp = fopen($_FILES["csv"]["tmp_name"], "r");
      //csvファイルを配列に変換
      while($csv[] = fgetcsv($tmp, "1024")){}
      //配列 $csv の文字コードをSJIS-winからUTF-8に変換
      mb_convert_variables("UTF-8", "SJIS-win", $csv);
      //ファイルを閉じる
      fclose($tmp);
    }
 }
//追記文ここまで
?>
<div class="wrap">
  <h2>CSVアップローダー</h2>
  <form action="" method="post" enctype="multipart/form-data">
    <table>
      <tr>
        <th>ファイルを選択<br><span class="f10">※CSVファイルのみ</span></th>
        <td><input name="csv" type="file" size="30"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" value="アップロード"></td>
      </tr>
    </table>
  </form>
</div><!-- end .wrap -->
<?php
//追記文ここから
if(isset($csv)): ?>
  <div class="wrap">
    <h3>以下の内容をアップロードしました。</h3>
      <table class="table">
      <?php foreach($csv as $c): ?>
      <?php if(is_array($c)): ?>
        <tr class="tr_style">
        <?php foreach($c as $td): ?>
          <td class="center"><?php echo $td; ?></td>
        <?php endforeach;?>
        </tr>
      <?php endif ?>
      <?php endforeach;?>
      </table>
  </div>
  <?php endif;
//追記文ここまで
}

追記文もPHPのやり方と同じです。

POSTされた値からCSVファイルかを確認して

CSVファイルを開いて

中の値を配列に入れてからファイルを閉じます。(4~15行目)

次に、配列に値があったら

1行ずつ値を取得して

テーブルで表示させていきます。(34~49行目)

例えば以下のようなCSVファイルをアップロードしてみます。

————————————————————
1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月
January,February,March,April,May,June,July,August,September,October,November,December
睦月,如月,弥生,卯月,皐月,水無月,文月,葉月,長月,神無月,霜月,師走
————————————————————

CSVアップロード後
CSVアップロード後

こんな感じでCSVがアップロードされて

画面に内容が表示されました。

このままだと、表示画面が少しさみしいので

次回はCSSを読み込んで

表示を変えてみます。

スポンサードリンク