这个问题几乎与Php search string (with wildcards)相同,但会有所不同。我很难理解所提议的解决方案,以使我自己的解决方案。也许你们可以帮忙吗?
我有一个开始字符串和一个结束字符串,我用它来夹住感兴趣的字符串。
这是我目前正在使用的功能:
function get_string_between($string, $start, $end)
{
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
有时我的开头字符串需要在其中包含通配符,以说明模板的动态部分
例如,我需要将它作为我的开始代码变量:
$begin_code = "id='%wildcard%' class='sailors_assistant_%wildcard%'>";
并编辑我上面的原始函数以检测%wildcard%(s)并在使用他们的夹心搜索-n-grabs时考虑它们。
有任何建议吗?
答案 0 :(得分:2)
最简单的方法是使用正则表达式:
function get_string_between($string, $start, $end) {
$start = str_replace("%wildcard%", ".*?", preg_quote($start, "/");
$end = str_replace("%wildcard%", ".*?", preg_quote($end, "/");
$regex = "/$start(.*?)$end/";
if (preg_match($regex, $string, $matches))
return $matches[1];
else
return false;
}