目次
PHPでのCSVファイルのインポートとエクスポートの詳細な説明
http://www.bkjia.com/PHPjc/904933.html
ホームページ バックエンド開発 PHPチュートリアル PHP の CSV ファイルのインポートとエクスポートの詳細な説明、_PHP チュートリアル

PHP の CSV ファイルのインポートとエクスポートの詳細な説明、_PHP チュートリアル

Jul 13, 2016 am 10:15 AM
csv php 輸入 輸出

PHPでのCSVファイルのインポートとエクスポートの詳細な説明

まず、プロジェクトに学生の情報を記録するテーブルstudentがあり、学生の名前、性別、年齢、その他の情報をそれぞれ記録するためのid、名前、性別、年齢があるとします。

コードをコピーします コードは次のとおりです:

テーブル「学生」を作成します (
`id` int(11) NOT NULL auto_increment、
`name` varchar(50) NOT NULL、
`sex` varchar(10) NOT NULL、
`age` smallint(3) NOT NULL デフォルト '0'、
主キー (`id`)
) エンジン=MyISAM デフォルト文字セット=utf8;
インポート フォームとエクスポート ボタンを配置するための HTML インタラクティブ ページも必要です。

コードをコピーします コードは次のとおりです:
<form id="addform" action="do.php?action=import" method="post" enctype="multipart/form-data"> <p>インポートする CSV ファイルを選択してください:<br/><input type="file" name="file"<input type="submit"
クラス="btn" 値="CSV をインポート"> <input type="button" class="btn" value="CSV をエクスポート" onclick="window.location.href='do.php?
Action=export'"></p>
</フォーム>


ローカル CSV ファイルを選択した後、[インポート] をクリックして処理のために do.php?action=import に送信し、[エクスポート] ボタンをクリックしてデータ エクスポート処理のためにアドレス do.php?action=export を要求します。
1.CSVインポート do.php は、取得したパラメータに従ってインポートとエクスポートのプロセスをそれぞれ処理する必要があります。PHP の構造は次のとおりです。


コードをコピーします

コードは次のとおりです:

include_once ("connect.php") // データベースに接続します $アクション = $_GET['アクション'] if ($action == 'import') //CSVをインポート
{
//インポート処理
}elseif($action=='export') //CSV をエクスポート
{
//エクスポート処理
}



CSV インポート処理プロセス: CSV ファイルの正当性を確認します (この記事では無視します) -> 読み込みを開いて CSV ファイル内のフィールドを解析します -> ループして各フィールドの値を取得します -> 追加バッチでデータテーブルに追加 -> Complete 。

コードをコピーします

コードは次のとおりです:


if ($action == 'import') { //CSV をインポート
$filename = $_FILES['file']['tmp_name']; If(空の空 ($filename))
{
echo 'インポートする CSV ファイルを選択してください! ';
出る
}
$ハンドル = fopen($ファイル名, 'r'); $result = input_csv($handle); // csv を解析します
$len_result = カウント($result); If($len_result==0)
{
エコー「データがありません!」 ';
出る
}
for($i = 1; $i < $len_result; $i++) //各フィールドの値を取得するループ
{
$name = iconv('gb2312', 'utf-8', $result[$i][0]); //中国語のトランスコーディング
$sex = iconv('gb2312', 'utf-8', $result[$i][1]); $age = $result[$i][2]; $data_values .= "('$name','$sex','$age'),"
}
$data_values = substr($data_values,0,-1) //最後のカンマを削除します
; fclose($handle); // ポインタを閉じる
$query = mysql_query("学生 (名前,性別,年齢) の値に挿入 $data_values") // データ テーブルにバッチ挿入
If($クエリ)
{
echo 'インポート成功! ';
}その他{
echo 'インポートに失敗しました! ';
}
}



php 独自の fgetcsv 関数は、csv を簡単に処理できることに注意してください。この関数を使用して、ファイル ポインターから行を読み取り、CSV フィールドを解析します。以下の関数は、csv ファイルのフィールドを解析し、配列として返します。

コードをコピーします

コードは次のとおりです:

関数 input_csv($handle) { $out = 配列 (); $n = 0; while ($data = fgetcsv($handle, 10000))
{
$num = count($data); for ($i = 0; $i                                                                                           $out[$n][$i] = $data[$i];                                                                                        $n++; }
$out を返します。 }



さらに、データベースにインポートするときは、1つずつ挿入するのではなくバッチ挿入を使用するため、SQLステートメントを構築するときに少し処理を行う必要があります。コードを参照してください。

2.CSVをエクスポートする

csv ファイルはカンマ区切りで構成されるプレーン テキスト ファイルであり、Excel で開くことができ、その効果は xls テーブルと同じであることがわかります。
CSV のエクスポート処理フロー: 学生情報テーブルを読み取る -> レコードをループしてカンマ区切りのフィールド情報を構築 -> ヘッダー情報を設定 -> ローカルにファイルをエクスポート (ダウンロード)



コードをコピーします
コードは次のとおりです:

...
}elseif ($action=='export') //CSV をエクスポート
{
$result = mysql_query("select * from Student order by id asc"); $str = "名前、性別、年齢 n"; $str = iconv('utf-8','gb2312',$str); While($row=mysql_fetch_array($result))
{
$name = iconv('utf-8','gb2312',$row['name']); //中国語のトランスコーディング
$sex = iconv('utf-8','gb2312',$row['sex']); $str .= $name.",".$sex.",".$row['age']."n" //引用符で区切る
; }
$filename = date('Ymd').'.csv' //ファイル名を設定します
; import_csv($filename,$str); //エクスポート
}



データをローカル コンピューターにエクスポートするには、コードを次のように変更する必要があります:

コードをコピーします

コードは次のとおりです: 関数export_csv($filename,$data) {
header("コンテンツタイプ:text/csv"); header("Content-Disposition:attachment;filename=".$filename); header('Cache-Control:must-revalidate,post-check=0,pre-check=0'); header('有効期限:0'); header('プラグマ:パブリック'); $data をエコーし​​ます。 }



インポートとエクスポートのプロセスに注意してください。統一された UTF-8 エンコーディングを使用しているため、中国語の文字が見つかった場合は必ずトランスコードする必要があります。そうしないと、中国語の文字化けが発生する可能性があります。
さて、この記事はここまでです。PHP と mysql を組み合わせて Excel をインポートおよびエクスポートする方法と、XML のインポートおよびエクスポートについては、後ほど別の記事で説明する予定ですので、楽しみにしていてください。






http://www.bkjia.com/PHPjc/904933.html

www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/904933.html

技術記事

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles