@john_notebook

Как найти слово в строке, и вывести текст??

Добрый День, у меня вопрос:
Есть строка например: abracadabra-cudsa_123-qwerty-text_a-abraca-trollololo-nlo
Если в строке есть слово(маркер) = text_a то вывести: Привет Васа!
Если в строке есть слово(маркер) = text_b то вывести: Привет Лана!
Если в строке не найдено text_a или text_b то вывести дефолт: Привет Мир!

я делаю так:

$text = $_GET['text'];

$main_str = $text;
 
//искомый текст
$my_str = 'text_a';
 
$pos = strpos($main_str, $my_str);
if ($pos === false) {
	echo 'Привет Мир!';
}else{
	echo 'Привет Васа!';
}


но тут проблема что ищет только одно слово(маркер)
Помогите решить! Спасибо!

UPD

ответ на регулярках

$main_str = 'abracadabra-cudsa_123-qwerty-text_a-abraca-trollololo-nlo';

//искомый текст
$my_str = '/text_a|text_b/';

$matches = array();
preg_match_all($my_str, $main_str, $matches);

if (array_search('text_a', $matches[0]) !== false)
  echo 'Привет, Васа!';
elseif(array_search('text_b', $matches[0]) !== false)
  echo 'Привет, Лана!';
else
  echo 'Привет, Мир!';


и ответ без регулярки дал @DevMan

if( strpos($main_str, 'text_a') !== false && strpos($main_str, 'text_b') !== false ) {
  echo 'ошибка';
}
elseif(strpos($main_str, 'text_a') !== false) {
  echo 'Привет Васа!';
}
elseif(strpos($main_str, 'text_b') !== false) {
  echo 'Привет Лана!';
}
else {
  echo 'Привет Мир!';
}
  • Вопрос задан
  • 1702 просмотра
Решения вопроса 3
DevMan
@DevMan
if( strpos($main_str, 'text_a') !== false && strpos($main_str, 'text_b') !== false ) {
	echo 'ошибка';
}
elseif(strpos($main_str, 'text_a') !== false) {
	echo 'Привет Васа!';
}
elseif(strpos($main_str, 'text_b') !== false) {
	echo 'Привет Лана!';
}
else {
	echo 'Привет Мир!';
}
Ответ написан
@stunoff
Попоробуйте использовать регулярные выражения с помощью preg_match
А уже то что вернется в массив можно и отдельно разобрать и вывести всё что потребуется
Ответ написан
@john_notebook Автор вопроса
с регуляркой

$main_str = 'abracadabra-cudsa_123-qwerty-text_a-abraca-trollololo-nlo';

//искомый текст
$my_str = '/text_a|text_b/';

$matches = array();
preg_match_all($my_str, $main_str, $matches);

if (array_search('text_a', $matches[0]) !== false)
  echo 'Привет, Васа!';
elseif(array_search('text_b', $matches[0]) !== false)
  echo 'Привет, Лана!';
else
  echo 'Привет, Мир!';
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы