0

何らかの理由でPHP変数が表示されないRSSフィードがあります。フィードが返されると、生のタグが返されます。たとえば、タイトルはTimetableではなくTimetable$yesterdaydになります-4月10日火曜日

<?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://site.com/</link>';
 ###   $output .= '<copyright>Your copyright details</copyright>';

    //BODY OF RSS FEED
   $output .= '<item>';
        $output .= '<title>Timetable for $yesterdayd</title>';
        $output .= '<description>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</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);

?>

何か案は?

4

2 に答える 2

2

出力文字列には二重引用符を使用します。変数は一重引用符で補間されないと思います。

以下のようなので

$output .= "<title>Timetable for $yesterdayd</title>";

それはそれをする必要があります。このページにはphp拡張子がありますよね?

編集:

配列またはオブジェクトを補間する場合は、次の{$row['username']}または{$object->property}のような構文を使用しますが、関数を呼び出す場合は補間できません。連結する必要があります。

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

また、一重引用符と二重引用符を混在させていないことを確認してください。応答として貼り付けたコードがそれらを混合しているように見えます。

于 2012-04-11T19:33:49.757 に答える
0

一重引用符はphp変数を計算しません。

すなわち

'<title>Timetable - $yesterdayd </title>';

する必要があります

"<title>Timetable - {$yesterdayd} </title>";
于 2012-04-11T19:34:07.173 に答える