我使用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>';
}
?>
答案 0 :(得分:0)
改变这个:
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>';
答案 1 :(得分:0)
我找到了解决问题的方法。以下是可能需要的人的解决方案。 此解决方案将包含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>';
}
?>