2014-01-08 3 views
0

Сейчас у меня есть код:PHP, получить только имя пользователя от @

$msgs = preg_replace('/(?<=^|\s)@([a-z0-9_]+)/i', '$1', $msg); 

Допустим, что

$msg = "@Admin Hello my friends"; 

код работает выше, но мне нужно, чтобы получить только меченый имя! Мне нужно получить только «Admin», всех людей, которые были отмечены. Как мне это сделать?

+0

preg_replace код работает, когда Мне нужно, чтобы связанный человек привязался к ссылке .. Вот почему я использую этот код :) – Johan

ответ

0

Вы можете сделать:

$msgs = preg_replace('/(?<=^|\s)@(\w+).*$/', '$1', $msg); 

или

if (preg_match('/(?<=^|\s)@(\w+)/', $msg, $match)) { 
    $msgs = $match[1]; 
} 

Если вы можете иметь более одного @ в одной строке, используйте preg_match_all:

preg_match_all('/(?<=^|\s)@(\w+)/', $msg, $match) 
+0

Спасибо ! Это работает :) Но знаете ли вы, как я могу вытащить всех людей, которые являются тегами? Если я могу отметить двух человек? Мне нужно, что в цикле «while»/« – Johan

+0

@ Johan: Я не понимаю, вы говорите, что в строке есть более одного' @ '? Или вы все читаете из файла? Обновите свой вопрос соответственно примерами. – Toto

+0

$ msg = "@Admin @Webmaster Hello!"; Нравится! Мне нужно выйти из Admin и веб-мастера .. это просто строка/строка – Johan

Смежные вопросы