econic/csvreader

此包已被废弃,不再维护。作者建议使用 csvreader 包。

将 csv 数据转换为二维关联数组的实用类

1.0.0 2014-04-11 13:02 UTC

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");

来删除仅为标题值注册的修饰符。