I may very well be wrong here, but from what I understand it's always preferred to use explode() if you don't need regular expressions. I'm trying to get a regex for this to work (thus eliminating the need for 3 operations), but if you are going to do it this way, I would suggest something like:
$string = str_replace('";"', '[:-qsemi-:]', $string);
$myarray = explode(';', $string);
for ( $i=0; $i < sizeof($myarray); $i++) {
$cur_string = str_replace ('[:-qsemi-:]', '";"', $myarray[$i]);
$myarray[$i] = $cur_string;
}
either way this is a roundabout way of doing it, i'm sure there's a regex that will work for this. I will reply if I get one working.