econic / csvreader
将 csv 数据转换为二维关联数组的实用类
This package is not auto-updated.
Last update: 2020-09-25 07:34:40 UTC
README
CsvReader 是一个 单元测试 的 PHP composer 包,包含一个实用类,用于读取您的 csv 数据并将其转换为关联二维数组。所有设置都是可配置的,并且提供了许多选项和修饰符来帮助您...
许可
CsvReader 在 MIT 许可下发布
使用
使用方法非常简单:只需设置源,配置您的选项,然后获取结果。
最小配置
$CsvReader = new \Econic\CsvReader\Reader(); $array = $CsvReader->setSource("Elephant,421,86\nMouse,15,4")->parse();
结果
array( 0 => array( 0 => "Elephant" 1 => 421 2 => 86 ), 1 => array( 0 => "Mouse" 1 => 15 2 => 4 ) )
这样您可以轻松遍历结果
foreach ($result as $line) { echo "A " . $line[0] . " can become " . $line[1] . "cm tall and " . $line[2] . " years old."; }
或者更方便的是,当您为值设置一个键时(以下说明如何操作)
foreach ($result as $line) { echo "A " . $line["title"] . " can become " . $line["size"] . "cm tall and " . $line["age"] . " years old."; }
字符
CsvReader 提供了丰富的选项。您不必使用它们中的任何一个,如果您想的话,也可以同时使用所有选项。就像您喜欢的那样。只需在 CsvReader 对象上使用相应的设置器/添加器即可。
$CsvReader->setMyFancyOption($value);
所有设置器/添加器都返回 CsvReader 对象,以便于链式调用。
$CsvReader->setOption1($value1)->setOption2($value2)->setOption3...
源
作为字符串提供的源。它包含您希望解析的 CSV 数据。
#####类型:String #####默认值:''
$CsvReader->setSource("1,2,3\n4,5,6");
分隔符
CSV 数据中的分隔符。想要在这里使用分号?没问题...
#####类型:String #####默认值:','
$CsvReader->setDelimiter(";");
换行符
CSV 数据中的换行符。您不换行?那好吧...用破折号怎么样?
#####类型:String #####默认值:"\n"
$CsvReader->setNewline("-");
封装符
CSV 数据中的封装符。当您的值包含分隔符或换行符时很有用。只需将整个值用封装符括起来。
#####类型:String #####默认值:'"'
$CsvReader->setEnclosure("'");
转义符
CSV 数据中的转义符。现在您有 " 作为封装符,但您的值中包含一个 " ... 只需在前面加上转义符即可!
#####类型:String #####默认值:''
$CsvReader->setEscape("!");
选项
您还可以使用 CsvReader 进行更多配置,如键、修饰符、全局缩进等...
缩进
如果解析后应该缩进值。默认开启。将在修饰符之前执行。
#####类型:Boolean #####默认值:true
$CsvReader->setTrim(false);
键
如果您想通过相应的属性名称访问值,请更改键。
#####类型1:整数,类型2:字符串
$CsvReader->setKey(0, "title");
可以一次性添加多个键,如下所示
#####类型:数组
$CsvReader->addKeys( array( 0 => "title", 1 => "size" ) );
在必要时重置键
$CsvReader->resetKeys();
修饰符
假设您csv文件每行的第一个值是一个标题。它被保存为"-v-a-l-u-e-",但您希望结果是"VALUE"。只需在所选键处添加修饰符,让读者来完成工作。第一个参数是您值的位(基于0)或,如果您为值选择了另一个键,则您的键。
#####类型1:整数/字符串,类型2:可调用
$CsvReader->addModifier(0, function($var){ return strtoupper(str_replace("-", "", $var)); });
完成。每个值都会移除破折号并转换为大写。当然,您在这里可以执行极其复杂的操作。并且您可以堆叠修饰符。您想要多少就多少。它们将按照您添加的顺序执行。
$CsvReader->addModifier("title", function($var){ return str_replace("-", "", $var); })->addModifier("title", function($var){ return strtoupper($var); });
如果您想要在添加后删除修饰符,您可以重置单个键的修饰符或所有修饰符。使用
$CsvReader->resetModifiers();
来删除所有修饰符或
$CsvReader->resetModifiers("title");
来删除仅为标题值注册的修饰符。