ホームページ  >  記事  >  バックエンド開発  >  PHP は CSV データをエクスポートします (ブラウザーの出力はダウンロードまたはファイルに保存できます)

PHP は CSV データをエクスポートします (ブラウザーの出力はダウンロードまたはファイルに保存できます)

WBOY
WBOYオリジナル
2016-07-25 08:53:201143ブラウズ
  1. /**
  2. * データを CSV ファイルにエクスポートします
  3. * @param array $data data
  4. * @param array $title_arr title
  5. * @param string $file_name CSV ファイル名
  6. */
  7. function export_csv(&$data, $title_arr, $file_name = '') {
  8. ini_set("max_execution_time", "3600");
  9. $ csv_data = '';
  10. /**タイトル*/
  11. $nums = count($title_arr);
  12. for ($i = 0; $i <$nums - 1; ++$i) {
  13. $csv_data .= '"' . $title_arr[$i] . '",';
  14. }
  15. if ($nums > 0) {
  16. $csv_data .= '"' . $title_arr[$nums - 1] . "" rn";
  17. }
  18. foreach ($data as $k => $row) {
  19. for ($i = 0; $i $row[$i] = str_replace(""", """", $row[$i]);
  20. $csv_data .= '"' 。 $row[$i] 。 '",';
  21. }
  22. $csv_data .= '"' 。 $row[$nums - 1] 。 ""rn";
  23. unset($data[$k]);
  24. }
  25. $csv_data = mb_convert_encoding($csv_data, "cp936", "UTF-8");
  26. $file_name = empty($file_name) ? date( 'Y-m-d-H-i-s', time()) : $file_name;
  27. if (strpos($_SERVER['HTTP_USER_AGENT'], "MSIE")) { // 解决IE浏览器输出中文名乱码的バグ
  28. $file_name = urlencode ($file_name);
  29. $file_name = str_replace('+', '%20', $file_name);
  30. }
  31. $file_name = $file_name .csv';
  32. header("Content-type:text/csv; ");
  33. header("Content-Disposition:attachment;filename=" . $file_name);
  34. header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
  35. header( 'Expires:0');
  36. header('Pragma:public');
  37. echo $csv_data;
  38. }
复制代

2,php导出csv数据,并保存文

  1. function export_csv($data, $title_arr, $file_name = '') {

  2. $csv_data = '';

  3. /**タイトル*/

  4. $nums = count($title_arr);
  5. for ($i = 0; $i < $nums - 1; ++$i) {
  6. $csv_data .= '"' 。 $title_arr[$i] . '",';
  7. }

  8. if ($nums > 0) {

  9. $csv_data .= '"' . $title_arr[$nums - 1] . ""rn";
  10. }

  11. foreach ($data as $k => $row) {

  12. for ($i = 0; $i < $nums - 1; ++$i) {
  13. $row[$i] = str_replace(""" , """", $row[$i]);
  14. $csv_data .= '"' 。 $row[$i] 。 '",';
  15. }
  16. $csv_data .= '"' 。 $row[$nums - 1] 。 ""rn";
  17. unset($data[$k]);
  18. }

  19. $file_name = empty($file_name) ? date('Y-m-d-H-i-s', time()) : $file_name;

  20. file_put_contents($file_name, $csv_data) ;
  21. }

复制代码

附、php导出csvデータの调用例(文書に保存):

  1. $file_name="/var/www/tmp/test.csv" ;
  2. $header = array(
  3. '0' => 'パラメータID',
  4. '1' => 'パラメータ名',
  5. '2' => '统计次数',
  6. '3' => '唯一の用户数',
  7. '5' =>数百分比',
  8. '6' => '人均次数'
  9. );
  10. $csvList = array("111", "タイトル", "12", "100%", "23", "50% ", "4")) ;
  11. export_csv($csvList, $header, $file_name) ;
复制代

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