Добавить ссылки на PHP, который получает последний твит из учетной записи Twitter - PullRequest
0 голосов
/ 25 июля 2010

У меня на сайте есть симпатичный маленький твиттер-виджет, созданный с помощью php. Я хотел бы быть в состоянии убедиться, что при появлении ссылки она кликабельна или когда я отвечаю кому-то, она ссылается на их профиль. Любая помощь с благодарностью.

<?php

function getTwitterStatus($userid){
$url = "http://twitter.com/statuses/user_timeline/$userid.xml?count=1";

$xml = simplexml_load_file($url) or die("could not connect");

       foreach($xml->status as $status){
       $text = $status->text;
       }
       echo $text;
 }

getTwitterStatus("UltanKC");

?>

Ответы [ 2 ]

3 голосов
/ 25 июля 2010

У меня есть функция, которую я использую для этого - она ​​будет создавать ссылки для URL-адресов, имен пользователей Twitter и хэштегов Twitter.

function auto_link_twitter ($text)
{
    // properly formatted URLs
    $urls = "/(((http[s]?:\/\/)|(www\.))?(([a-z][-a-z0-9]+\.)?[a-z][-a-z0-9]+\.[a-z]+(\.[a-z]{2,2})?)\/?[a-z0-9._\/~#&=;%+?-]+[a-z0-9\/#=?]{1,1})/is";
    $text = preg_replace($urls, " <a href='$1'>$1</a>", $text);

    // URLs without protocols
    $text = preg_replace("/href=\"www/", "href=\"http://www", $text);

    // Twitter usernames
    $twitter = "/@([A-Za-z0-9_]+)/is";
    $text = preg_replace ($twitter, " <a href='https://twitter.com/$1'>@$1</a>", $text);

    // Twitter hashtags
    $hashtag = "/#([A-Aa-z0-9_-]+)/is";
    $text = preg_replace ($hashtag, " <a href='https://twitter.com/hashtag/$1'>#$1</a>", $text);
    return $text;
}

чтобы использовать его с вашим кодом, отредактируйте строку, отображающую статус:

echo auto_link_twitter ($text);
0 голосов
/ 25 июля 2010

Похоже, что это довольно всеобъемлющее с помощью поиска в Google 'php автоматические ссылки'

(из http://www.snipe.net/2009/09/php-twitter-clickable-links/):

function twitterify($ret) {
    $ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
    $ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
    $ret = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $ret);
    $ret = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $ret);
    return $ret;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...