我怎样才能使来自推特RSS的推文链接可点击


How can i make links on tweet clickable that came from Twitter RSS

我使用SimpleXML通过RSS获取我的推文。我想使推文上的链接可点击。但我不知道怎么做。我尝试了一些不起作用的东西。需要您的帮助。

这是我的代码;

<? 
$twitterRssFeedUrl =  "https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=puzzletravel";
$twitterUsername = "puzzletravel";
$amountToShow = 5;
$twitterPosts = false;
$xml = @simplexml_load_file($twitterRssFeedUrl);
$reg_exUrl = "/(http|https|ftp|ftps)':'/'/[a-zA-Z0-9'-'.]+'.[a-zA-Z]{2,3}('/'S*)?/";
$text = $xml;
if(is_object($xml)){
    //Rest of our code will be here
}else{
    die('cannot connect to twitter feed');
}
foreach($xml->channel->item as $twit){
    if(is_array($twitterPosts) && count($twitterPosts)==$amountToShow){
        break;
    }
     $d['title'] = stripslashes(htmlentities($twit->title,ENT_QUOTES,'UTF-8'));
    $description = stripslashes(htmlentities($twit->description,ENT_QUOTES,'UTF-8'));
    if(strtolower(substr($description,0,strlen($twitterUsername))) == strtolower($twitterUsername)){
        $description = substr($description,strlen($twitterUsername)+1);
    }
    $d['description'] = $description;
    $d['pubdate'] = strtotime($twit->pubDate);
    $d['guid'] = stripslashes(htmlentities($twit->guid,ENT_QUOTES,'UTF-8'));
    $d['link'] = stripslashes(htmlentities($twit->link,ENT_QUOTES,'UTF-8'));
    $twitterPosts[]=$d;
}
if(is_array($twitterPosts)){
    echo '<ul>';
    foreach($twitterPosts as $post){
        echo '<li><p>'.$post['description'].'</p><p class="date">'.date(' j F',$post['pubdate']).'</p></li>';
    }
    echo '</ul>';
}else{
    echo '<p>No Twitter posts have been made</p>';
}
?>

更改以下内容:

    echo '<li><p>'.$post['description'].'</p><p class="date">'.date(' j F',$post['pubdate']).'</p></li>';

对此:

    echo '<li><p><a href="'.$post['link'].'">'.$post['description'].'</p><p class="date">'.date(' j F',$post['pubdate']).'</a></p></li>';

我找到了解决问题的方法。这是那些可能需要的解决方案。此解决方案将包含http,https的文本转换为可点击的URL。

<? 
$twitterRssFeedUrl =  "https://api.twitter.com/1/statuses/user_timeline.rss?screen_name=puzzletravel";
$twitterUsername = "puzzletravel";
$amountToShow = 7;
$twitterPosts = false;
$xml = @simplexml_load_file($twitterRssFeedUrl);
$reg_exUrl = "/(http|https)':'/'/[a-zA-Z0-9'-'.]+'.[a-zA-Z]{2,3}('/'S*)?/";
if(is_object($xml)){
    //Rest of our code will be here
}else{
    die('Tweetler Alinamiyor');
}
foreach($xml->channel->item as $twit){
    if(is_array($twitterPosts) && count($twitterPosts)==$amountToShow){
        break;
    }
     $d['title'] = stripslashes(htmlentities($twit->title,ENT_QUOTES,'UTF-8'));
    $description = stripslashes(htmlentities($twit->description,ENT_QUOTES,'UTF-8'));
    if(strtolower(substr($description,0,strlen($twitterUsername))) == strtolower($twitterUsername)){
        $description = substr($description,strlen($twitterUsername)+1);
    }
    $d['description'] = $description;
    $d['pubdate'] = strtotime($twit->pubDate);
    $d['guid'] = stripslashes(htmlentities($twit->guid,ENT_QUOTES,'UTF-8'));
    $d['link'] = stripslashes(htmlentities($twit->link,ENT_QUOTES,'UTF-8'));
    $twitterPosts[]=$d;
}
if(is_array($twitterPosts)){
    echo '<ul>';
    foreach($twitterPosts as $post){
        if(preg_match($reg_exUrl, $post['description'], $url)) {
            $post['description']=preg_replace($reg_exUrl, "<a href={$url[0]}>{$url[0]}</a> ", $post['description']);
        }
        echo '<ul id="twitter_update_list">
              <li>
    <div id="tweet">'.$post['description'].'<a href="'.$post['link'].'">'.date(' j F',$post['pubdate']).'<br></a></li>';
    }
    echo '</ul>';
}else{
    echo '<p>Güncel Tweetler Oluşturulamadı Sayfayı Yenilemeyi Deneyin.</p></div>';
}
?>