Эта функция будет возвращать первый соответствующий текст между кавычками (возможно, пустой строкой).
function just_text_in_quotes($str) {
preg_match('/"(.*?)"/', $str, $matches);
return isset($matches[1]) ? $matches[1] : FALSE;
}
Вы можете изменить его, чтобы он возвращал массив всех совпадений, но в своем примере вы используете его вконтекст echo
возвращает его возвращаемое значение.Если бы он возвратил массив, все, что вы получили бы, это Array
.
Возможно, вам лучше написать более общую функцию, которая может обрабатывать несколько вхождений, и собственный разделитель.
function get_delimited($str, $delimiter='"') {
$escapedDelimiter = preg_quote($delimiter, '/');
if (preg_match_all('/' . $escapedDelimiter . '(.*?)' . $escapedDelimiter . '/s', $str, $matches)) {
return $matches[1];
}
}
Это вернет null
, если совпадений не найдено.