访问Twitter XML标记内的URL

时间:2012-02-05 21:34:26

标签: php xml twitter

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

我尝试访问的网址在链接标记

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

它在XML文件中的位置是Feed-&gt; Entry-&gt; Link。

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

这是我的代码。

<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 个答案:

答案 0 :(得分: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);
相关问题