Как я могу получить часть строки с условным префиксом [+
и суффикс +]
, а затем вернуть все это в массив?
пример:
$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; }