Получить часть строки, если с условным префиксом

Как я могу получить часть строки с условным префиксом [+ и суффикс +] , а затем вернуть все это в массив?

пример:

 $string = 'Lorem [+text+] Color Amet, [+me+] The magic who [+do+] this template'; // function to get require function getStack ($string, $prefix='[+', $suffix='+]') { // how to get get result like this? $result = array('text', 'me', 'do'); // get all the string inside [+ +] return $result; } 

большое спасибо…

Вы можете использовать preg_match_all как:

 function getStack ($string, $prefix='[+', $suffix='+]') { $prefix = preg_quote($prefix); $suffix = preg_quote($suffix); if(preg_match_all("!$prefix(.*?)$suffix!",$string,$matches)) { return $matches[1]; } return array(); } 

Код в действии

Вот решение с strtok :

 function getStack ($string, $prefix='[+', $suffix='+]') { $matches = array(); strtok($string, $prefix); while (($token = strtok($suffix)) !== false) { $matches[] = $token; strtok($prefix); } return $matches; }