Deixe os tweets da sua home navegáveis
Olá a todos!
Hoje em dia é comumente usado a barrinha de tweets tanto em blogs quando em sites institucionais mesmo, esta é uma forma de encurtar a distância entre o site e a comunidade que o envolve.
É uma iniciativa muito boa, eu mesmo já segui várias empresas e pessoas através dessa sessão dos sites (e tenho aqui no meu blog) que acesso, agora há momentos em que eu não quero seguir ninguém, mas por alguma razão gostaria de acessar o link do tweet que ali está. Na maioria dos sites os tweets são crus, não tem reconhecimento de links, hashtags ou usernames, então criei uma pequena função usando regex que cuida de analisar o tweet e fazer as modificações no texto de modo que torne ele navegável, do ponto de vista do html.
Aqui vai a função:
/**
* Recebe um tweet e processa de modo a retornar uma string em formato html.
* @param string $tweet
*/
function detectTweetElements($tweet){
$link_replace = "<a href='$0' target='_blank'>$0</a>";
$user_replace = "<a href='http://twitter.com/$0' target='_blank'>$0</a>";
$hashtag_replace = "<a href='http://search.twitter.com/search?q=$0' target='_blank'>$0</a>";
$tweet = preg_replace('/(\w)*(\:\/\/)(\w|\.|-|\/)*/i', $link_replace, $tweet);
$tweet = preg_replace('/(\@)(\w|_)*/i', $user_replace, $tweet);
$tweet = preg_replace('/(\#)(\w|_)*/i', $hashtag_replace, $tweet);
return $tweet;
}
Se você entende um pouco de regex viu como a solução é simples, se você não entende, já explico.
Eu dividi o processo em 3 etapas, detectar links, detectar usernames e detectar hashtags, e fui substituindo a string.
Agora o modo de usar:
//simulando um tweet recuperado da API do twitter $tweet = "Olá a todos! eu sou o @cristianogomes e gostaria que vocês visitassem http://agentenarede.wordpress.com #recomendo"; //escrevendo o tweet formatado na tela echo detectTweetElements($tweet);
Pronto, para a solução ser boa não significa que ela tenha que ser complexa, conhecimento da linguagem e imaginação basta. Com certeza os regex’s poderiam ser melhores, porém, para um propósito genério basta.
Até a próxima!
Você pode me contrar no twitter também!
Nenhum trackbacks ainda.