介绍
在我的上一篇文章CSV Reader中,我讨论了我创建的CSV阅读器。在这篇文章中,我想解释Filters
和Maps
在对象中的工作方式。
过滤器
过滤器是您在摄入内容之前过滤内容的一种方式。创建对象后,您必须添加过滤器。
$csv->addFilter('Phone', [Customer::class, 'sanitizePhone']);
第一个参数是触发调用的字段。因此,在这种情况下,在使用$csv->Phone
检索电话时,它将称为Customer::sanitizePhone()
。它将自动从文件传递到该方法。因此,您将需要创建该方法来调用。
/**
* Method to sanitize the phone number from a CSV file
* @param string $val
* @return string
*/
public static function sanitizePhone(string $val): string
{
return preg_replace("/[^0-9\+]/", $val);
}
地图
地图是另一个非常强大的功能。地图使您可以将多个字段组合在一起,并将它们串联成一个格式化的字符串。一个简单的例子是地址或名称。
$csv->addMap('Address', "%0\n%1, %2 %3", ['add', 'city', 'state', 'zip']);
在这种情况下,当阅读$csv->Address
时,它将以类似于
的格式字符串返回
123 Main St
Anytown, ST 12345