从 pregmatch_all 到 csv 的数组
Array from pregmatch_all to csv
我需要将字符串 pregmatch_all 中的所有匹配项(除了匹配末尾具有 "DESCATALOGADO" 的匹配项)写入 CSV。
$pdfText= nl2br($text);
$patternECO = '/^(ECO(?!GEST|DE)(?!GEST|DE)[-\/\w]+(?: [UPMNB]{1,3}(?= ))*) ([^\r\n]+\S)/m' ;
preg_match_all($patternECO, $text, $matches);
$fp = fopen('file.csv', 'w');
foreach ($matches as $match) {
fputcsv($fp, $match);
}
fclose($fp);
例如我从pregmatch_all
Array (
[0] => Array (
[0] => ECO-698 Acondicionador Frio-Calor
[1] => ECO-CHI-522 Chimenea eléctrica con patas
[2] => ECO-CHI-530 Calefactor purificador
[3] => ECO-3005 Halógeno Oscilante 400-800-1200 Watts DESCATALOGADO
我想要这样的 csv
ECO-698;Acondicionador Frio-Calor;
ECO-CHI-522;Chimenea eléctrica con patas;
ECO-CHI-530;Calefactor purificador;
使用 PREG_SET_ORDER
选项,这样您就可以在同一行结果中获得每个匹配项的所有捕获组。
然后在循环中,从行中删除元素 0
,因为这是整个匹配项,但您只想将捕获组写入文件。
$patternECO = '/^(ECO(?!GEST|DE)(?!GEST|DE)[-\/\w]+(?: [UPMNB]{1,3}(?= ))*) ([^\r\n]+\S)/m' ;
preg_match_all($patternECO, $text, $matches, PREG_SET_ORDER);
$fp = fopen('file.csv', 'w');
foreach ($matches as $match) {
array_shift($match);
fputcsv($fp, $match);
}
fclose($fp);
我需要将字符串 pregmatch_all 中的所有匹配项(除了匹配末尾具有 "DESCATALOGADO" 的匹配项)写入 CSV。
$pdfText= nl2br($text);
$patternECO = '/^(ECO(?!GEST|DE)(?!GEST|DE)[-\/\w]+(?: [UPMNB]{1,3}(?= ))*) ([^\r\n]+\S)/m' ;
preg_match_all($patternECO, $text, $matches);
$fp = fopen('file.csv', 'w');
foreach ($matches as $match) {
fputcsv($fp, $match);
}
fclose($fp);
例如我从pregmatch_all
Array (
[0] => Array (
[0] => ECO-698 Acondicionador Frio-Calor
[1] => ECO-CHI-522 Chimenea eléctrica con patas
[2] => ECO-CHI-530 Calefactor purificador
[3] => ECO-3005 Halógeno Oscilante 400-800-1200 Watts DESCATALOGADO
我想要这样的 csv
ECO-698;Acondicionador Frio-Calor;
ECO-CHI-522;Chimenea eléctrica con patas;
ECO-CHI-530;Calefactor purificador;
使用 PREG_SET_ORDER
选项,这样您就可以在同一行结果中获得每个匹配项的所有捕获组。
然后在循环中,从行中删除元素 0
,因为这是整个匹配项,但您只想将捕获组写入文件。
$patternECO = '/^(ECO(?!GEST|DE)(?!GEST|DE)[-\/\w]+(?: [UPMNB]{1,3}(?= ))*) ([^\r\n]+\S)/m' ;
preg_match_all($patternECO, $text, $matches, PREG_SET_ORDER);
$fp = fopen('file.csv', 'w');
foreach ($matches as $match) {
array_shift($match);
fputcsv($fp, $match);
}
fclose($fp);