2010-11-23 2 views
0

Je veux envelopper les noms d'utilisateur dans mes tweets afin que je puisse leur attribuer une couleur et un lien différents. Par exemple, si cela était mon tweet:Enveloppe html <a> Marquer un nom d'utilisateur twitter dans un tweet avec php

@benpaton Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Je voudrais faire:

<a href="http://www.twitter.com/benpaton" target="_blank" class="green">@benpaton</a> Lorem ipsum dolor sit amet, consectetur adipiscing elit. 

C'est le php J'utilise au moment de rendre mon dernier tweet au moment actuellement avec des liens sur:

 <?php 
     /** Script to pull in the latest tweet */ 
     $username='benpaton'; // set user name 
     $format='json'; // set format 
     $tweet=json_decode(file_get_contents("http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}")); // get tweets and decode them into a variable 
     $latestTweet = $tweet[0]->text; // copy the text element from the latest tweet[0] to var $latestTweet 
     $latestTweet = str_replace("\"","",$latestTweet); // remove speech marks from tweets as this closes the alt tag 
    ?> 

Merci Pour votre aide!

Répondre

1

Essayez ceci:

<?php 

$username = 'benpaton'; 
$format = 'json'; 
$tweet = json_decode(file_get_contents("http://api.twitter.com/1/statuses/user_timeline/{$username}.{$format}")); 
$latestTweet = htmlentities($tweet[0]->text, ENT_QUOTES); 
$latestTweet = preg_replace('/@([a-z0-9_]+)/i', '<a href="http://twitter.com/$1" target="_blank" class="green">@$1</a>', $latestTweet); 
echo $latestTweet; 

?> 

Le preg_replace se chargera de l'écriture de lien, les htmlentities() encoderont entre guillemets, ils devraient pouvoir être inclus dans votre sortie sans casser quoi que ce soit.

+0

Merci pour l'aide! –

1
$latestTweet = 
    preg_replace('/@(\w+)/', 
       '<a href="http://www.twitter.com/$1" target="_blank" class="green">@$1</a>', 
       $latestTweet); 
+0

@Ben Paton: Voir la documentation pour [ 'preg_replace'] (http://php.net/manual/en/function.preg-replace.php) - la' n' $ valeurs représentent les valeurs 'classer dans l' (...) 'dans l'expression rationnelle. Ici, '$ 1' obtient le' (\ w +) ', qui est le mot qui suit immédiatement un symbole' @ '. – casablanca

Questions connexes