CSV阅读器过滤器和地图
#编程 #php #csv

介绍

在我的上一篇文章CSV Reader中,我讨论了我创建的CSV阅读器。在这篇文章中,我想解释FiltersMaps在对象中的工作方式。

过滤器

过滤器是您在摄入内容之前过滤内容的一种方式。创建对象后,您必须添加过滤器。

$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