I would go with PREG...
This first example will only extract text between quotes :
$string = 'the "quick brown fox" jumped over "the lazy" dog';
$arrMatches = array();
preg_match_all('/"([^"]*?)"/', $string, $arrMatches);
for($intM = 0; $intM < count($arrMatches[1]); $intM++) {
printf(('Text between quotes : %s<br />' . "\n"), $arrMatches[1][$intM]);
}
And now, a bit more complex, but will show before quotes and between quotes, and then, end of the sentence...
$string = 'the "quick brown fox" jumped over "the lazy" dog which was "quite tired" but...';
$arrMatches = array();
preg_match_all('/([^"]*?)"([^"]*?)"/m', $string, $arrMatches);
for($intM = 0; $intM < count($arrMatches[1]); $intM++) {
printf(('Before quotes : %s<br />' . "\n"), $arrMatches[1][$intM]);
printf(('Between quotes : %s<br />' . "\n"), $arrMatches[2][$intM]);
echo (($intM < (count($arrMatches[1]) - 1)) ? 'Next...' : '') . "<br /><br />\n";
}
$strEnd = ((!(strrpos($string, '"') === false)) ? substr($string, (strrpos($string, '"') + 1)) : '');
printf(('End of the sentence : %s<br />' . "\n"), $strEnd);