CSV(逗號(hào)分隔值)是一種常見的數(shù)據(jù)格式,用于將表格數(shù)據(jù)導(dǎo)出到電子表格程序中。在php中,我們可以使用內(nèi)置的函數(shù)或第三方庫(kù)來(lái)導(dǎo)出csv文件。
首先,我們可以使用內(nèi)置函數(shù)fputcsv來(lái)將數(shù)組數(shù)據(jù)寫入csv文件。例如,我們有一個(gè)學(xué)生信息的數(shù)組:
$students = array( array('name' =>'Tom', 'age' =>18, 'gender' =>'M'), array('name' =>'Lily', 'age' =>20, 'gender' =>'F'), array('name' =>'John', 'age' =>19, 'gender' =>'M') );我們可以通過(guò)以下代碼將它們寫入一個(gè)csv文件:
$fp = fopen('students.csv', 'w'); foreach ($students as $student) { fputcsv($fp, $student); } fclose($fp);上述代碼中,我們首先打開一個(gè)csv文件句柄,然后使用foreach循環(huán)將每個(gè)學(xué)生信息寫入文件中。fputcsv函數(shù)會(huì)自動(dòng)將每個(gè)學(xué)生信息的各個(gè)字段用逗號(hào)隔開,并在末尾添加換行符。 另外,我們還可以通過(guò)第三方庫(kù)PHPExcel來(lái)導(dǎo)出csv文件。例如,我們有一個(gè)班級(jí)成績(jī)的數(shù)組:
$scores = array( array('name' =>'Tom', 'math' =>80, 'english' =>85), array('name' =>'Lily', 'math' =>90, 'english' =>95), array('name' =>'John', 'math' =>85, 'english' =>90) );我們可以使用PHPExcel庫(kù)來(lái)將它們寫入csv文件:
require_once 'PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('Scores'); $objPHPExcel->getActiveSheet()->fromArray($scores, null, 'A1'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV'); $objWriter->setDelimiter(','); $objWriter->setUseBOM(true); $objWriter->setEnclosure('"'); $objWriter->save('scores.csv');上述代碼中,我們首先實(shí)例化一個(gè)PHPExcel對(duì)象,并設(shè)置該表格的標(biāo)題和數(shù)據(jù)源。然后,我們創(chuàng)建一個(gè)CSV格式的Writer對(duì)象,設(shè)置其分隔符、BOM和引號(hào)等屬性,并將PHPExcel對(duì)象寫入文件。 總的來(lái)說(shuō),php導(dǎo)出csv文件非常簡(jiǎn)單。無(wú)論我們使用內(nèi)置函數(shù)fputcsv還是第三方庫(kù)PHPExcel,都可以輕松地將數(shù)組數(shù)據(jù)寫入文件中,以供電子表格程序使用。