0

RSS フィードを表示するコードがありますが、メイン コンテンツが表示されません。

 <?PHP
 include("../config.php");
 #// Timetable Clearup Variabls
$yesterday = strtotime('yesterday');
$yesterdow = date('l',$yesterday);
$order = "SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time";
$result = mysql_query($order);
$yesterdayd = date('F jS, Y', time()-86400);

    //SET XML HEADER
    header('Content-type: text/xml');

    //CONSTRUCT RSS FEED HEADERS
    $output = '<rss version="2.0">';
    $output .= '<channel>';
    $output .= "<title>Timetable - {$yesterdayd} </title>";
    $output .= '<description>Timetable.</description>';
    $output .= '<link>http://example.com/</link>';
 ###   $output .= '<copyright>Your copyright details</copyright>';

    //BODY OF RSS FEED
   $output .= '<item>';
        $output .= "<title>Timetable for $yesterdayd</title>";
        $output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>";
        $output .= '<link>Link to Item</link>';
        $output .= '<pubDate>Date Published</pubDate>';
   $output .= '</item> ';

    //CLOSE RSS FEED
   $output .= '</channel>';
   $output .= '</rss>';

    //SEND COMPLETE RSS FEED TO BROWSER
    echo($output);

?>

私が問題を抱えているビットは次のとおりです。

 $output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>";

基本的に、各行のデータをフィードに出力する必要があります。

これが通常の方法です(私が望むフォーマットであるテーブルに):

<?php 
include("../config.php");

#// Timetable Clearup Variabls
$yesterday = strtotime('yesterday');
$yesterdow = date('l',$yesterday);

echo "<table width=\"580px\" class=\"board\" border=\>";

$order = "SELECT * FROM timetable WHERE day = '$yesterdow' ORDER BY time";
$result = mysql_query($order);

// Error checking
if (!$result) {
  // output error, take other action
}
else {
  while ($row=mysql_fetch_array($result)){
     // Append all results onto an array
     $rowset[] = $row;
       echo "<tr><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></tr>";
  }
}





?> 
4

1 に答える 1

0

RSSをテーブルに表示したいというのはどういう意味ですか? HTML または RSS (XML) を作成しますか? それとも、RSS を HTML 表示に変換することについて話しているのでしょうか? 1 つの方法は、そのためにXSLTを使用することです。

$rowRSS 生成スクリプトで、すべてのフィード アイテムに対して変数が定義されていません。while($row = mysql_fetch_array($result))RSSアイテム出力の周りに配置する必要があります-次のようなものです:

while ($row = mysql_fetch_array($result)) {
    $output .= '<item>';
    $output .= "<title>Timetable for $yesterdayd</title>";
    $output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>";
    $output .= '<link>Link to Item</link>';
    $output .= '<pubDate>Date Published</pubDate>';
    $output .= '</item>';
}

description編集: コードを再検討する際:タグ内のフィールドを分割する必要もあります。そこにタグを入れるべきではありませんtd- RSS 要素は (通常) HTML マークアップ データを含むことを意図していません。

このようなもの(この意味が理にかなっている場合):

$output = "<description>
    <username>" . htmlspecialchars($row['username']) . "</username>
    <time>" .     htmlspecialchars($row['time']) . "</time>
</description>";
于 2012-04-11T20:19:57.387 に答える