<?
/////////////////////////////////////////////////////////////////
// Примеры сниппетов для поиска по тексту
/////////////////////////////////////////////////////////////////
// --------------------------------------------------------------
// Поиск по тексту (слова в скобках)
// --------------------------------------------------------------
$TEXT = 'Мы (нашли, подобрали, подыскали) <b>для вас 47</b> частных и 2 государственные стоматологии
(около, рядом с, вблизи) <b>метро Алексеевская</b>, в которых TEST
(предоставляется услуга, предоставляют услугу, оказывают услугу),
<b>можно получить</b> услугу, вы можете <b>получить услугу</b> «лечение зубов».
Цены (начинаются, стартуют) от 230 руб. (Расстояние, Путь) от станции метро до ближайшей клиники – 300 м.';
echo "<pre>";
print_r(getMaskElements($TEXT));
echo "</pre>";
// --------------------------------------------------------------
// Возвращает слова заключенные в скобки "()"
// --------------------------------------------------------------
function getMaskElements($text){
$result = array();
$pattern = "/<b>(.*?)</b>/si"; // Поиск внутри по тексту в тэгах тэга (не UTF)
$pattern = "/<b>(.*?)</b>/usi"; // Поиск внутри по тексту в тэгах тэга (UTF - кириллица)
$pattern = "/\((.*?)\)/si"; // Поиск текста внутри скобок "()" (не UTF)
$pattern = "/\((.*?)\)/usi"; // Поиск текста внутри скобок "()" (UTF - кириллица)
preg_match($pattern, $text, $matches); // Найдет только первое вхождение
preg_match_all($pattern, $text, $matches); // Ищет по всему тексту
if(!empty($matches)){
$result = $matches[1];
}
return $result;
}
// --------------------------------------------------------------
// Поиск массива слов в строке
// --------------------------------------------------------------
function multineedle_stripos($haystack, $needles, $offset=2) {
foreach($needles as $needle)
if (stripos(mb_strtolower($haystack, 'windows-1251'), $needle, $offset))
$found[$needle] = $needle;
return $found;
}
// --------------------------------------------------------------
// Поиск текста внутри последних круглых скобок ()
// --------------------------------------------------------------
$text = "Стол дуб девон 3 (дуб девон xxx 53245) переговорный на дуб девон 2 панельном (Этот текст будет выведен) каркасе В-122 ";
echo getColorNameFromText($text);
function getColorNameFromText($text){
$res = "";
$pattern = "/\((.*?)\)/usi"; // Поиск текста внутри скобок "()" (UTF - кириллица)
preg_match_all($pattern, $text, $matches); // Ищет по всему тексту
$res = end($matches);
if(is_array($res)){
$res = end($res);
}
return $res;
}