Мне было интересно, что лучший способ получить слово до и после определенного ключевого слова из строки?
Пример:
$e = "Kuru Kavrulmuş soya Fasulye: 100 gram, ortalamadır";
$_GET['word'] = 'soya';
Я хотел бы затем повторить Kavrulmuş
и Fasulye
.
Мой динамический фрагмент (для получения строки)
if ( stripos($e, $_GET['word']) !== false) {
echo '<div class="yellow">'. highlight($e,$_GET['word']) . '</div>';
}
Есть идеи?
Вы можете использовать простое регулярное выражение с preg_match()
чтобы соответствовать слову до и после вашего ключевого слова, например
$str = "Kuru Kavrulmuş soya Fasulye: 100 gram, ortalamadır";
$_GET['word'] = 'soya';
preg_match("/(\w+) " . $_GET['word'] . " (\w+)/mu", $str, $matches);
print_r($matches);
вывод:
Array
(
[0] => Kavrulmuş soya Fasulye
[1] => Kavrulmuş
[2] => Fasulye
)
Регулярное выражение просто объясняет использование \w
для словных символов ([a-zA-Z0-9_]
) с квантором +
чтобы соответствовать 1 или более раз. Таким образом, вы можете записать слово до и после вашего ключевого слова.