Получить часть строки, если с условным префиксом [+ и суффикс +] - PullRequest
4 голосов
/ 14 ноября 2010

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

пример:

$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;
}

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

Ответы [ 2 ]

5 голосов
/ 14 ноября 2010

Можно использовать 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();
}

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

2 голосов
/ 14 ноября 2010

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

function getStack ($string, $prefix='[+', $suffix='+]') {
    $matches = array();
    strtok($string, $prefix);
    while (($token = strtok($suffix)) !== false) {
        $matches[] = $token;
        strtok($prefix);
    }
    return $matches;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...