Я пытаюсь токенизировать поисковый запрос, как я называю Text::Tokenize
функция очень похожа на пример на сайте Cake, но я сталкиваюсь с проблемой всякий раз, когда у меня есть "
с -
прямо перед ним.
$query = 'question "help needed" -"garbage" contents of query';
$tokens = Text::tokenize( $query, ' ', '"', '"');
foreach ( $tokens as $index => $token) {
echo $token . "\n";
}
Я получаю следующий вывод.
question
"help needed"-"garbage" contents of query
Но разве я не должен получить следующее? Что мне не хватает?
question
"help needed"-"garbage"contents
of
query
Стоит отметить, что это не происходит для запроса 'question -"garbage" contents of query'
Это не имеет ничего общего с -
char, но с появлением нескольких левых / правых границ. Из описания API не ясно, предназначен ли метод для поддержки нескольких границ, поэтому я бы сказал, что он либо не поддерживается, либо является ошибкой.
Беглый взгляд на источник, я бы сказал, что это ошибка. open
флаг Вот (может быть, не единственная проблема, или, может быть, даже не часть проблемы, я не могу проверить это прямо сейчас). В любом случае вы можете открыть вопрос на GitHub, просить улучшения, соответственно, регистрируя поведение как ошибку.
Других решений пока нет …