【发布时间】:2019-10-14 00:07:22
【问题描述】:
我正在尝试导入 CSV 文件以自动插入候选人。
作为第一步,用户导入一个 excel 文件(.xls、.xls)。借助 PhpSpreadSheet 库,我将文件从文件转换为 csv,以便更好地利用它。
我只想恢复一些数据列,例如 lastName、firstName、gender、phonenumber。
为此,我使用正则表达式来检测它们。在每次检测中,我将结果存储在数组中。 但是之后,如何从这些列中恢复数据?
$headers = [];
if(($handle = fopen($loadedSheetName.'.csv', "r")) !== FALSE)
{
foreach (fgetcsv($handle, 1000, ';') as $key => $header)
{
if (preg_match('/^(lastName)/i', $header, $matches))
{
$headers[$key] = $header;
}
if (preg_match('/^(firstName)/i', $header, $matches))
{
$headers[$key] = $header;
}
if (preg_match("/^(gender)/i", $header, $matches))
{
$headers[$key] = $header;
}
if (preg_match("/^(phoneNumber)/i", $header, $matches))
{
$headers[$key] = $header;
}
}
$keys = array_keys($headers);
$values = array_values($headers);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$num = count($data);
for ($c=0; $c < $num; $c++)
{
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
【问题讨论】:
标签: php regex csv while-loop