Функция поиска PHP с использованием подстановочных знаков - PullRequest
0 голосов
/ 30 августа 2010

Этот вопрос почти идентичен: Строка поиска Php (с подстановочными знаками) , но будет организован немного по-другому. Мне было трудно понять предложенные решения, чтобы сделать из них свое собственное. Может быть, вы, ребята, можете помочь?

У меня есть начальная строка и конечная строка, которую я использую для сэндвич-цепочек, представляющих интерес.

Это функция, которую я сейчас использую для этого:

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%'>";

и отредактируйте мою оригинальную функцию выше, чтобы обнаружить% подстановочных знаков% (s) и учесть их при использовании их сэндвич-поиска.

Любой совет?

1 Ответ

2 голосов
/ 30 августа 2010

Самый простой способ - использовать регулярное выражение:

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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...