Использование символа @ для идентификации пользователей, таких как твиттер,

Я создаю свою собственную версию twitter, я понятия не имею, как получить мой конец php-скрипта, чтобы забрать @membername в введенном тексте. Включение нескольких @ membername, например @billy @joseph, @ tyrone, @ kesha message

или

@billy попал в @tyrone, он прослушивает @kesha о деньгах, которые вы ему должны.

Какие-нибудь сценарии использования, как я могу это сделать?

Related of "Использование символа @ для идентификации пользователей, таких как твиттер,"

Как насчет использования регулярных выражений и preg_match_all , например:

 $str = "Including multiple @membername's for example @billy @joseph, @tyrone,@kesha message "; if (preg_match_all('#(@\w+)#', $str, $m)) { var_dump($m[1]); } 

Что даст вам следующий результат:

 array 0 => string '@membername' (length=11) 1 => string '@billy' (length=6) 2 => string '@joseph' (length=7) 3 => string '@tyrone' (length=7) 4 => string '@kesha' (length=6) 

В принципе, здесь шаблон, который я использовал в моем регулярном выражении, соответствует:

  • Символ @
  • Любой (более одного) символ, который может находиться внутри слова: \w+
    • Об этом см. На странице « Обратная статистика» в разделе « Регулярные выражения» (Perl-Compatible) руководства по PHP

Существует библиотека PHP, предназначенная для соответствия стандартам Twitter. Это может сэкономить вам много хлопот. Он поддерживает автозапуск, а также извлечение для @screen_names, #hashtags и @ screen_name / lists.

http://github.com/mzsanford/twitter-text-php

Я написал плагин WordPress, который обрабатывает это давным-давно. Вот функция, которую я использую для этого.

 function convert_twitter_link($content) { $pattern = '/\@([a-zA-Z0-9_]+) /'; $replace = '<a rel="nofollow" target="_blank" href="http://twitter.com/'.strtolower('\1').'">@\1</a>'; return preg_replace($pattern,$replace,$content); } 

Все зависит от того, как вы его настроите … Могут ли у ваших имен пользователей пробел? Если нет, просто просто проанализируйте строку сообщения для «@» и заберите все символы, которые появляются после того, как вы встретите пробел … это простой способ сделать это.

Другая сторона вопроса – это то, что вы делаете с именами пользователей, как только вы их «найдете»?