0

我在这里陷入困境,我成功地从网站返回数据,但随后来自网站的超链接以文本而不是链接的形式返回。我想知道是否有任何方法可以将其作为链接返回。也可以在超链接内显示信息吗?

<div data-role="content">
    <div class="content-primary">
    <?php
    $query = 'http://query.yahooapis.com/v1/public/yql?q=Select%20*%20From%20rss%20where%20url%3D%22http%3A%2F%2Fworldoftanks.com%2Fnews%2Frss%2F%22&diagnostics=true';
    $xml = simplexml_load_file($query);
    //var_dump($xml);
    echo '<h2>World of Tank News</h2>';
    //iterate over query result set
    $results = $xml->results;
    foreach ($results->item as $r){
        echo $r->title . "<br />";
        echo $r->link . "<br /><br />";
    }

    ?>
    </div>
4

3 回答 3

1

而不是这样做:

echo $r->link . "<br /><br />";

做这个:

echo "<a href=\"" . $r->link . "\">" . $r->link . "</a>";
于 2012-04-18T13:27:18.790 回答
0

可能是你应该使用

foreach ($results->item as $r){
    echo "<a href=\"" . $r->link . "\">" . $r->title . "</a><br /><br />";
}
于 2012-04-18T13:33:00.730 回答
0

为了以这种方式回显 HTML 标签,我更喜欢使用printf()

printf(
  '<a href="%s">%s</a>'
    , htmlentities($r->link)
    , htmlentities($r->title)
);

printf()echo在替换特殊格式的标记后获取一个字符串并s 。在上面的示例中,字符串中有两个标记,它们都表示为%s

运行时printf(),它将每个标记替换为相应的参数。在上面的例子中,第一个%s被替换为 的结果htmlentities($r->link),第二个%s被替换为 的结果htmlentities($r->title)

手册页sprintf()更详细地介绍了令牌的工作原理,并提供了更多示例(除了返回格式化的字符串,而sprintf()直接输出它printf()之外,其余都是相同的)。sprintf()printf()

于 2012-04-19T04:04:32.203 回答