Есть строка вида
text text text @hello text text
Как мне вытащить именно @hello а именно все,что начинается с @ и до пробела
Пробовал через explode и strstr,не вышло что то. Получается найти @hello и дальше до конца строки,а мне именно @hello нужно
Вот. Легко и просто.
$text = "text text text @hello text text ";
$a = strstr($text, '@'); // отсекаем всё слева
$pos = strpos($a, " "); // узнаём сколько знаков до пробела справа
$final = substr($a, 0, $pos); // отступим $pos количество символов, и удалим всё справа
echo $final;
Вот ещё проще:
$text = "text text text @hello text text ";
$a = strstr($text, '@'); // обрезаем все слева до @
$b = strstr($a, ' ', true); // если true, то обрезка будет справа, обрезаем после пробела
echo $b;
Укороченный вид: (автор @E_p)
$text = "text text text @hello text text ";
$a = strstr(strstr($text, '@'), ' ', true);
echo $a;
Например, регулярным выражением
$search = 'text text text @hello text text';
$patt = '~@[\S]+~';
preg_match_all($patt, $search, $all);
echo '<pre>'; var_dump($all); echo '</pre>';
Решения выше считаю более лучшим вариантом, но и такой также имеет право на жизнь:
$text = "text text text @hello text text ";
function findAfterDogText($text)
{
$arr = explode(' ', $text);
foreach ($arr as $value) {
if ($value[0]=='@') {
return substr($value, 1);
}
}
return null;
}
var_dump(findAfterDogText($text));
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости