ホームページ  >  記事  >  バックエンド開発  >  PHP の CSV ファイルのインポートとエクスポートの詳細な説明、_PHP チュートリアル

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

WBOY
WBOYオリジナル
2016-07-13 10:15:26763ブラウズ

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 インタラクティブ ページも必要です。

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

インポートする CSV ファイルを選択してください:
クラス="btn" 値="CSV をインポート">





ローカル 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 までご連絡ください。