PHP 처리 CSV 표 파일 의 일반적인 조작 방법 요약

2881 단어 PHPCSV
온라인 엑셀 표 편집 기능 을 하려 면 엑셀 의 xls 파일 형식 에 대한 분석 이 문제 입 니 다.이것 은 마이크로소프트 Office 의 개인 특허 형식 이기 때 문 입 니 다.
그래서 하려 면 일반적인 csv(Comma Separated Value,쉼표 구분 값)형식 을 사용 하 세 요.
각종 사무 용 소프트웨어 는 csv 표를 식별 할 수 있 는데 사실은 특정한 구분자(예 를 들 어 쉼표)로 칸 을 구분 하 는 표 이다.
PHP 로 말 하면 fgetcsv 는 csv 표를 읽 고 배열 을 되 돌려 줍 니 다.
그리고 foreach 는 HTML 의로 출력 합 니 다.이 단 계 는 몇 줄 의 코드 를 조작 하면 매우 간단 합 니 다.
업 무량 은 주로 브 라 우 저 전단 에 있 습 니 다.jQuery 로 DOM 과 AJAX 작업 을 하 는 것 을 권장 합 니 다.
phpMyAdmin 처럼 세 립 도 더 블 클릭 셀 편집 을 실현 하고 AJAX 제출 도 어렵 지 않 습 니 다.
또는 전체 표를 작성 한 후 한번에$("form").serialize();그리고 AJAX 가 제출 해도 돼 요.
CSV 표 의 몇 가지 규칙:
1.줄 마다 칸 의 내용 을 쉼표 로 구분한다.
2.셀 의 내용 자체 에 쉼표 가 있다 면 이 셀 의 내용 은 따옴표 로 포 함 됩 니 다.
3.셀 의 내용 자체 에 따옴표 가 있다 면:
(1)따옴표 가 처음 이나 끝 에 없 으 면 이 셀 의 내용 은 따옴표 에 포함 되 지 않 습 니 다.
(2)따옴표 가 처음 이나 끝 에 있 는데 이 칸 의 내용 은 따옴표 에 포함 되 고 원래 의 끝 에 있 는 따옴표 가 전 의 될 것 이다.
읽 기와 쓰기 CSV

<?php
header('Content-Type: text/plain; charset=utf-8');

//  CSV  :   CSV
$arr = array (
  array('ab', 'cd'),
  array('"a,b"', '"c,d"'),
);
$fp = fopen('file.csv', 'w');
foreach ($arr as $row) {
  //       CSV       
  fputcsv($fp, $row);
}
fclose($fp);
unset($arr);

//  CSV  :CSV   
$fp = fopen('file.csv', 'r');
while ( ($row = fgetcsv($fp)) !== FALSE ) {
  //             CSV
  $arr[] = $row;
}
fclose($fp);
var_export($arr);

다른 파일 로 저장
download.php:

 <?php
$list = array (
  'aaa,bbb,ccc,dddd',
  '123,456,789',
  '"aaa","bbb"'
);
session_start();
$_SESSION['outputArray']=$list;
?>
<a href="test.php" target="_blank">  csv  </a>
test.php:

<?php
session_start();
$outputArray=$_SESSION['outputArray'];
header('Content-Type: application/csv');
header('Content-Disposition: attachment;filename="sales.csv"');
$output=fopen('php://output','w') or die("can not open");
foreach ($outputArray as $line) {
  fputcsv($output, split(',', $line));
}
fclose($output) or die("can not close");
?>
csv 파일 을 지정 한 장소 로 자동 으로 저장 합 니 다.

<?php

$list = array (
  'aaa,bbb,ccc,dddd',
  '123,456,789',
  '"aaa","bbb"'
);

$fp = fopen('file.csv', 'w');

foreach ($list as $line) {
  fputcsv($fp, split(',', $line));
}

fclose($fp);
?>

좋은 웹페이지 즐겨찾기