Hallo allerseits,
ich versuche gerade eine CSV-Datei zu parsen (Ausschnitt):
"3" "xx.xx.2017" "VISA Card Kartenumsatz" "AMAZON DE RETAIL AMA AMAZON 4532xxxxxxxx4657 VISA AMAZON.DE 5999LU 1x,xxEUR VOM xx.xx 1035 " "" "" "" "" "" "xx.xx.2017" "1x,xx" ""
Die Spalte 3 (4. von links) versuche ich nun mit einem PHP-Skript zu parsen, um die erste Zeichenkette "AMAZON DE RETAIL AMA AMAZON" (bis zum ersten Vorkommen von 3 Spaces) zu extrahieren:
<?php
ini_set("auto_detect_line_endings", true);
$row = 1;
mb_regex_encoding("UTF-8");
#echo mb_regex_encoding();
if (($handle = fopen("vw-data.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, "\t")) !== FALSE) {
$num = count($data);
$row++;
echo $data[3] . "<br>\n";
#print_r(str_getcsv($data[3], "\s"));
#print_r(explode(" ", $data[3]));
print_r(preg_split("/ {2,}/", $data[3]));
#echo ord(" � � ");
if ($row > 2)
exit;
}
fclose($handle);
}
?>
Aber egal wie ich es versuche (preg_split(), mb_split(), explode()), ich kann immer nur bei einem Space splitten (/ /, /\s/ usw.), sobald ich es mit zwei oder mehr versuche wird der String gar nicht mehr gesplittet (/ /, / {2,}/, /\s{2,}/ usw.). Ich habe keine Ahnung was ich falsch mache.
Kann mir jemand helfen?
VG halfbrain
P.S. Ich nutze PHP 5.5.38 auf Mac OS 10.11.6. Die CSV-Datei ist (vermutlich) UTF-8.