Php 使用simplepie链接推文

Php 使用simplepie链接推文,php,twitter,hyperlink,simplepie,linkify,Php,Twitter,Hyperlink,Simplepie,Linkify,我试图让某些tweet中包含的链接在我的twitter小部件上工作,例如,当我在tweet上发布一个图像,twitter将其转换为一个短链接。这是代码。。。提前感谢您的帮助 if ( !function_exists( 'wp_echo_twitter' ) ) { function wp_echo_twitter($username) { include_once( ABSPATH . WPINC . '/class-simplepie.php' );

我试图让某些tweet中包含的链接在我的twitter小部件上工作,例如,当我在tweet上发布一个图像,twitter将其转换为一个短链接。这是代码。。。提前感谢您的帮助

if ( !function_exists( 'wp_echo_twitter' ) ) {
    function wp_echo_twitter($username) {
        include_once( ABSPATH . WPINC . '/class-simplepie.php' );

        // Fetch feed, set cache locaiton, and initialize function
        $feed = new SimplePie();
        $feed->set_feed_url("http://twitter.com/statuses/user_timeline/$username.atom?count=200");
        $feed->set_cache_location( ABSPATH . WPINC );
        $feed->init();
        $feed->handle_content_type();

        // Output tweet
        foreach ($feed->get_items(0, 1) as $item):
            echo '<p class="hero-p" style="margin-bottom: 9px;">"' . $item->get_description() . '"</p>' . '<span><a href="' . $item->get_permalink() . '">' . $item->get_date('D, M j, Y') . '</a></span>';
        endforeach;

    }
}
如果(!function_存在('wp_echo_twitter')){
函数wp_echo_twitter($username){
包括一次(ABSPATH.WPINC./class simplepi.php');
//获取提要、设置缓存位置和初始化函数
$feed=新的simplepi();
$feed->set_feed_url(“http://twitter.com/statuses/user_timeline/$username.atom?计数=200“;
$feed->设置缓存位置(ABSPATH.WPINC);
$feed->init();
$feed->handle_content_type();
//输出tweet
foreach($feed->get_项目(0,1)作为$item):
echo'

”。$item->get_description()。“

”; endforeach; } }
需要一次(“simplepie.inc”);
$cache=“/cache”;
$duration=3600;
//将URL、hashtag和@reply转换为链接
函数twitterify($ret){
$ret=preg#u replace(“#(^|[\n])([\w]+?:/[\w]+[^\”\n\r\t<]*)#“,“\\1”,$ret);
$ret=preg#u replace(“#(^|[\n])((www.ftp)\.[^\”\t\n\r<]*)#“,“\\1”,$ret);
$ret=preg_replace(“/@(\w+/”,”,$ret);
$ret=preg#u replace(“/#(\w+/”,”,$ret);
返回$ret;
}
//让时间变得有节奏
函数时间($time){
$delta=time()-$time;
如果($delta<60){
返回“不到一分钟前”;
}否则如果($delta<120){
返回“大约一分钟前”;
}否则,如果($delta<(45*60)){
返回楼层($delta/60)。“几分钟前”;
}否则,如果($delta<(90*60)){
返回“大约一小时前”;
}否则如果($delta<(24*60*60)){
返回“大约”。楼层($delta/3600)。“小时前”;
}否则如果($delta<(48*60*60)){
返回“1天前”;
}否则{
返回楼层($delta/86400)。“几天前”;
}
}
函数getLastTweet($username){
$twitter=新的SimplePie(“http://twitter.com/statuses/user_timeline/$username.rss“,$cache,$duration);
foreach($twitter->get_items(0,1)作为$item):
$pubDate=$item->get_item_标记(“”,'pubDate');
$data=$pubDate[0]['data'];
$time=niceTime(strotime(str_替换(“+0000)”,“,$data));
回声“”;
echo twitterify(str_replace(“$username:”,“,$item->get_title());
回显“$time”;
回声“

”; endforeach; } //显示推特 getLastTweet(“twitterusername”);
require_once('simplepie.inc');
$cache = "/cache";
$duration = 3600;

// turn urls, hashtags and @replies into links
function twitterify($ret) {
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a target=\"_new\" href=\"\\2\" >\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a target=\"_new\" href=\"http://\\2\" >\\2</a>", $ret);
$ret = preg_replace("/@(\w+)/", "<a target=\"_new\" href=\"http://www.twitter.com/\\1\" >@\\1</a>", $ret);
$ret = preg_replace("/#(\w+)/", "<a target=\"_new\" href=\"http://search.twitter.com/search?q=\\1\" >#\\1</a>", $ret);
return $ret;
}

//  make the time twittery
function niceTime($time) {
$delta = time() - $time;
if ($delta < 60) {
return 'less than a minute ago.';
} else if ($delta < 120) {
return 'about a minute ago.';
} else if ($delta < (45 * 60)) {
return floor($delta / 60) . ' minutes ago.';
} else if ($delta < (90 * 60)) {
return 'about an hour ago.';
} else if ($delta < (24 * 60 * 60)) {
return 'about ' . floor($delta / 3600) . ' hours ago.';
} else if ($delta < (48 * 60 * 60)) {
return '1 day ago.';
} else {
return floor($delta / 86400) . ' days ago.';
}
}

function getLastTweet($username){
$twitter = new SimplePie("http://twitter.com/statuses/user_timeline/$username.rss", $cache, $duration);
foreach ($twitter->get_items(0,1) as $item) :
$pubDate = $item->get_item_tags('','pubDate');
$data = $pubDate[0]['data'];
$time = niceTime(strtotime(str_replace("+0000", "", $data)));

echo "<p>"; 
echo twitterify(str_replace("$username: ", "", $item->get_title()));
echo "<span>$time</span>"; 
echo "</p>";
endforeach;
}
// show tweet
getLastTweet("twitterusername");