0

私はここで苦労しています.Webサイトからデータを正常に返しますが、サイトからのハイパーリンクがリンクではなくテキストとして返されます. リンクとして返す方法はあるのだろうか。また、ハイパーリンク内の情報を表示することは可能ですか?

<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

この方法で HTML タグをエコーするために、私は以下を使用することを好みますprintf()

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

printf()文字列を受け取り、echo特別にフォーマットされたトークンを置き換えた後に s します。上記の例では、文字列に 2 つのトークンがあり、どちらも として表され%sます。

実行するprintf()と、各トークンが対応するパラメーターに置き換えられます。上記の例では、1番目は の%s結果に置き換えられhtmlentities($r->link)、2 番目%sは の結果に置き換えられhtmlentities($r->title)ます。

のマニュアル ページにsprintf()は、トークンがどのように機能するかについての詳細が記載されており、さらに多くの例があります (sprintf()とは、書式設定された文字列を返し、それを直接出力するprintf()点を除いて同じです)。sprintf()printf()

于 2012-04-19T04:04:32.203 に答える
0

あなたが使うべきかもしれません

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