You can use substring and strpos to find the right parts or you can use preg_match (regular expressions), both have their own (dis)advantages. Using preg_match you can do this is as little as one line, but it is relatively slow and not as easy to use. I would do something like this:
while(/* $line is next line available */) {
$brace_position = strpos($line, '{');
$bracket_position = strpos($line, '[');
$data = array(
substr($line, 0, ($brace_position - 1),
substr($line, $brace_position, ($backet_position - $brace_position - 1)),
substr($line, $bracket_position)
);
}
The other answer provided above, by wired00, are correct too, but only if each line is exactly the same in length (i.e. the same amount of words an spaces). The answer by check123 is not a correct answer to your question.
See strauberry's answer for the regular expression which I mentioned in above.