У меня есть текстовый файл, содержащий строки, разделенные "\n" и пробелы между каждым элементом. Элементы разделяются одним или несколькими пробелами. Однако пробелы между элементами одинаковы для каждой строки.
FRUIT WATER GRE LRG 0003 050
FRUIT BANAN YEL MED 0017 010
FRUIT STRAW RED SML 0005 005
FRUIT LEMON YEL SML 0024 005
VEGIE REDPE RED MED 0008 001
VEGIE GRENP GRE MED 0009 001
BOX RED 006 012 018
BOX YEL 010 020 030
BOX GRE 003 006 009
PERSON JOHN TALL STRG
PERSON JIMM MEDM WEAK
PERSON DAVD MEDM STRG
Я пытаюсь разобрать этот файл с помощью PHP. Следующий код дает массив с большим количеством пробелов.
if(file_exists($filename)) {
$filecontents = file_get_contents($filename);
$lines = explode("\n", $filecontents);
foreach ($lines as $line) {
$exploded = explode(" ", $line);
if (sizeof($exploded) >= 5 and $exploded[0] == 'FRUIT') $array[] = array(
'type' => $exploded[1],
'color' => $exploded[2],
'size' => $exploded[3],
'qty' => $exploded[4],
'weight' => $exploded[5]
);
if (sizeof($exploded) >=5 and $exploded[0] == 'VEGIE') $array[] = array(
'type' => $exploded[1],
'color' => $exploded[2],
'size' => $exploded[3],
'qty' => $exploded[4],
'weight' => $exploded[5]
);
if (sizeof($exploded) >= 5 and $exploded[0] == 'BOX') $array[] = array(
'color' => $exploded [1],
'largefit' => $exploded[2],
'medfit' => $exploded[3],
'smallfit' => $exploded[4]
);
if (sizeof($exploded) >= 4 and $exploded[0] == 'PERSON') $array[] = array (
'name' => $exploded[1],
'build'=> $exploded[2],
'strength' => $exploded[3]
);
}
}
print_r($array);
?>
$var = preg_replace('/ +/', ' ', $var)
или любой символ пробела$var = preg_replace('/\s+/', ' ', $var)
- person Augwa   schedule 10.03.2017