yidas / csv
PHP CSV 编写器与读取器,具有引号封装和编码设置
1.0.0
2021-09-06 11:01 UTC
README
PHP CSV
PHP CSV 编写器与读取器,具有引号封装和编码设置
特性
-
支持为所有实体设置生成 双引号 封装
-
支持本地方言的 编码 设置
-
优雅的界面 用于设置和使用
概要
演示
直接指定文件名进行快速入门
// Read the CSV file $csvReader = new yidas\csv\Reader('/tmp/file.csv'); $rows = $csvReader->readRows(); $csvReader->fclose(); // Write the CSV file $csvWriter = new yidas\csv\Writer('/tmp/file.csv'); $csvWriter->writeRows($rows); $csvWriter->fclose();
写入 CSV
打开文件并使用库以 CSV 格式写入
$fp = fopen("/tmp/file.csv", 'w'); $csvWriter = new yidas\csv\Writer($fp, [ // 'quoteAll' => true, // 'encoding' => 'UTF-8' ]); $csvWriter->writeRow(["First", 'Second']); $csvWriter->writeRows([ ["Normal", 'Double"Quote'], ["It's a context,\nNew line.", 'Encoded中文'], ]); fclose($fp);
生成的 CSV 文件内容将如下所示
"First","Second"
"Normal","Double""Quote"
"It's a context,
New line.","Encoded中文"
在默认设置下,它将始终使用
UTF-8
编码添加双引号。
从 CSV 读取
使用 UTF-8
编码打开带有本地编码(Big5
)的 CSV 文件并使用库读取
$fp = fopen("/tmp/file.csv", 'r'); $csvReader = new yidas\csv\Reader($fp, [ 'encoding' => 'Big5' ]); $firstRow = $csvReader->readRow(); $remainingRows = $csvReader->readRows(); fclose($fp);
需求
此库需要以下内容
- PHP CLI 5.4.0+
安装
在您的项目中运行 Composer
composer require yidas/csv
然后您可以在 Composer 加载到您的 PHP 项目后使用该类
require __DIR__ . '/vendor/autoload.php'; use yidas\csv\Writer; use yidas\csv\Reader;
使用
选项
Writer/Reader 类的参数 2 中的选项如下
quoteAll
控制何时由写入器生成引号。
Encoding
控制写入器/读取器应生成哪种编码。
默认情况下,Microsoft Excel 将使用本地编码打开 CSV 文件。例如:中文(繁体)Windows 中的 Excel 将使用 Big5 编码打开 CSV。
写入器
$csvWriter = new yidas\csv\Writer($fp, [ // 'quoteAll' => true, // 'encoding' => 'UTF-8' ]);
writeRow()
将行参数写入写入器的文件流,格式根据当前设置进行格式化。
public static array writeRow(array $rowData)
writeRows()
将行参数写入写入器的文件流,格式根据当前设置进行格式化。
public static array writeRows(array $rowsData)
读取器
$csvReader = new yidas\csv\Reader($fp, [ // 'encoding' => 'UTF-8' ]);
readRow()
从当前文件指针读取一行。
public static array readRow()
示例
while ( ($row = $csvReader->readRow($file) ) !== FALSE ) { var_dump($row); }
readRows()
从当前文件指针读取所有行。
public static array readRows()
示例
$rows = $csvReader->readRows(); var_dump($rows);
异常
try { $csvWriter = new yidas\csv\Writer($fp, [ // 'quoteAll' => true, // 'encoding' => 'UTF-8' ]); $csvWriter->writeRow(["First", 'Second']); } catch (\Exception $e) { echo 'Code:' . $e->getCode() . ' Message:' . $e->getMessage(); }