Эта функция возвращает первый согласованный текст между кавычками (возможно, пустую строку).
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
, если не было найдено ни одного совпадения.
Спасибо, это было то, что мне нужно. Ну, я никогда не пользовался регулярным выражением, но, похоже, мне это нужно много в моем проекте ... Я приму его как можно скорее. –