2012-02-05 53 views
2

我目前正在使用地理编码解析twitter推文,并使用php显示它们。但目前无法访问tweet的URL,而是选择显示用户的twitter个人资料。在Twitter XML标签内访问URL

我试图访问的网址链接标签内

<link type="text/html" href="http://twitter.com/pmhigham/statuses/166271863331368961"  rel="alternate" > 

它的XML文件中的位置是进料 - >入门>链接。

我想过使用正则表达式,但不知道如何去使用它。

这是我的代码。

<h3><?php 
if (isset($column1Heading)) { 
echo $column1Heading; 
} 
?></h3> 
       <p> 
       <strong>Tweets within 10 miles radius of London Eye</strong></br> 
       <?php 
       $feed = simplexml_load_file ('http://search.twitter.com/search.atom?geocode=51.5069999695%2C-0.142489999533%2C10.0mi%22london%22&lang=en&rpp=5'); 
       if ($feed){foreach ($feed->entry as $item) { 

         echo '<a href=\'' . $item->author->uri. '\'>' . $item->title . '</a>', '</br>' . $item->published, '</br>'; 
       } 
       } 
       else echo "Cannot find Twitter feed!" 
       ?> 
       </br> 
       <strong>London Hashtag</strong> 
       </br> 
       <?php 
       $feed = simplexml_load_file ('http://search.twitter.com/search.atom?q=%23london&lang=en&rpp=5'); 
       if ($feed){foreach ($feed->entry as $item) { 

         echo '<a href=\'' . $item->author->uri. '\'>' . $item->title . '</a>', '</br>' . $item->published, '</br>'; 
       } 
       } 
       else echo "Cannot find Twitter feed!" 
       ?> 


      </p> 
     </li> 
     <li class="col2"> 
      <h3><?php 
       if (isset($column2Heading)) { 
        echo $column2Heading; 
       } 
       ?></h3> 
      <p> 
       <?php 
       $feed = simplexml_load_file ('http://search.twitter.com/search.atom?geocode=40.744544%2C-74.027593%2C10.0mi%22manhattan%2C+ny%22&lang=en&rpp=5'); 
       if ($feed){foreach ($feed->entry as $item) { 

         echo '<a href=\'' . $item->author->uri. '\'>' . $item->title . '</a>', '</br>' . $item->published, '</br>'; 
       } 
       } 
       else echo "Cannot find Twitter feed!" 
       ?> 
       <strong>NYC Hashtag</strong> 
       </br> 
       <?php 
       $feed = simplexml_load_file ('http://search.twitter.com/search.atom?q=%23nyc&lang=en&rpp=5'); 
       if ($feed){foreach ($feed->entry as $item) { 

         echo '<a href=\'' . $item->author->uri. '\'>' . $item->title . '</a>', '</br>' . $item->published, '</br>'; 
       } 
       } 
       else echo "Cannot find Twitter feed!" 
       ?> 

      </p> 
     </li> 
     <li class="col3"> 
      <h3><?php 
       if (isset($column3Heading)) { 
        echo $column3Heading; 
       } 
       ?></h3> 
      <p> 
       <?php 
       $feed = simplexml_load_file ('http://search.twitter.com/search.atom?lang=en&geocode=48.861%2C2.336%2C5.0mi%22paris%2C+fr%22&rpp=5&lang=en'); 
       if ($feed){foreach ($feed->entry as $item) { 

         echo '<a href=\'' . $item->author->uri. '\'>' . $item->title . '</a>', '</br>' . $item->published, '</br>'; 
       } 
       } 
       else echo "Cannot find Twitter feed!" 
       ?> 

      </p> 
     </li> 
    </ul> 
    <div class="clear"></div> 
</div> 
<?php require_once 'footer.php'; ?> 

回答

1

如果我理解正确:

您可以用内置的SimpleXML的attributes() method访问属性。

$item->link->attributes()->href 

否则,正则表达式应该是这样的

$string = '<link type="text/html" href="http://twitter.com/pmhigham/statuses/166271863331368961"  rel="alternate" >'; 
preg_match('/href\=\"([^\"]+)\"/i', $string, $matches);