Добрый День, у меня вопрос:
Есть строка например: 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 'Привет Мир!';
}