此函数将返回引号之间的第一个匹配文本(可能是空字符串).
function just_text_in_quotes($str) {
preg_match('/"(.*?)"/', $str, $matches);
return isset($matches[1]) ? $matches[1] : FALSE;
}
Run Code Online (Sandbox Code Playgroud)
您可以修改它以返回所有匹配的数组,但在您的示例中,您在echo其返回值的上下文中使用它.如果它返回一个数组,你会得到的只是Array.
您可能最好编写一个可以处理多次出现的更通用的函数和一个自定义分隔符.
function get_delimited($str, $delimiter='"') {
$escapedDelimiter = preg_quote($delimiter, '/');
if (preg_match_all('/' . $escapedDelimiter . '(.*?)' . $escapedDelimiter . '/s', $str, $matches)) {
return $matches[1];
}
}
Run Code Online (Sandbox Code Playgroud)
null如果未找到匹配项,则会返回.