Использование символа @ для идентификации пользователей, как это делает твиттер - PullRequest
3 голосов
/ 29 марта 2010

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

или

@ Билли ударил @tyrone, он глючит @kesha о деньгах, которые вы ему должны.

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

Ответы [ 4 ]

8 голосов
/ 29 марта 2010

Как насчет использования регулярных выражений и 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+
2 голосов
/ 04 апреля 2010

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

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

1 голос
/ 29 марта 2010

Я написал плагин 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);
}
0 голосов
/ 29 марта 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...