Bonjour J'essaie d'afficher le dernier tweet en utilisant le code ci-dessous. Ce preg_replace fonctionne très bien pour envelopper un lien autour de twitter @usernames mais ne fonctionne pas pour les adresses web dans les tweets. Comment puis-je obtenir ce code pour envelopper les liens autour des URL dans les tweets.Wrap lien autour des liens dans les tweets avec php preg_replace
<?php
/** Script to pull in the latest tweet */
$username='fairgroceruk';
$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">@$1</a>', $latestTweet);
$latestTweet = preg_replace('/http://([a-z0-9_]+)/i', '<a href="http://$1" target="_blank">http://$1</a>', $latestTweet); echo $latestTweet;
?>
Merci pour l'aide,
Ben
ceux-ci ne semblent pas travailler ... –
Eh bien, il est toujours utile de savoir ce que ce sujet ne fonctionne pas, par opposition à « ne fonctionne pas ». J'ai juste testé le premier, et j'ai réalisé que l'expression régulière originale est en fait cassée - pas à cause de l'échappement/mais simplement parce que plus de caractères peuvent être dans les URLs. Le bit [] doit être au strict minimum: ([a-z0-9 _ \. \ - \ + \ & \! \ # \ ~ \,] +) - et ce n'est toujours pas tous les caractères d'URL légaux, juste un bon sous-ensemble d'entre eux. – Arantor
Désolé c'est difficile à expliquer mais le problème semble être que si vous avez un @twitterUsername dans l'URL comme le premier preg_replace échappe deux fois et finit un désordre mélangé par le deuxième preg_replace –