2012-04-11 9 views
0

Ich habe einen RSS-Feed, der aus irgendeinem Grund meine PHP-Variablen nicht anzeigt. Wenn das Futter zurückgegeben wird es kommt zurück mit den rohen Tags zum Beispiel wird der Titel statt Zeitplan Zeitplan $ yesterdayd sein - April Irgendwelche IdeenRSS Feed zeigt keine PHP-Variablen an

<?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); 

?> 

Dienstag, der 10.?

+0

'$ output = ' "'...'..".';' - hier haben Sie einen Mismatch Anführungszeichen ('' 'vs.' "') ... – glglgl

Antwort

2

Verwenden Sie doppelte Anführungszeichen für die Ausgabezeichenfolgen. Die Variablen interpolieren nicht mit einfachen Anführungszeichen, denke ich.

So wie

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

Das sollte es tun. Die Seite hat eine PHP-Erweiterung, oder?

EDIT:

Wenn Sie Arrays oder Objekte sind Interpolation verwenden Syntax wie diese {$ row [ 'username']} oder {$ objekt-> Eigenschaft}, aber wenn Sie eine Funktion anrufen, Sie können nicht einschalten, Sie verketten MÜSSEN:

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

Also, stellen Sie sicher, dass Sie jetzt nicht einfache und doppelte Anführungszeichen mischen - es sieht aus wie der Code, den Sie klebte wie eine Antwort sie mischt.

+0

dieser Typ sagte alles, was ich wollte – squarephoenix

0

einfache Anführungszeichenfolgen berechnen keine PHP-Variablen.

dh

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

sollte
"<title>Timetable - {$yesterdayd} </title>"; 
+0

Das hat funktioniert! Danke, aber ein Teil zeigt immer noch keine Ergebnisse: '$ output. = '". htmlspecialchars ($ row ['Benutzername']). " ". htmlspecialchars ($ row ['time']). " ';' – Logan

+0

'$ output. =' " 'sollte' $ output. = "" sein. htmlspecialchars ($ row ['Benutzername']). " ". htmlspecialchars ($ row ['time']). "" sonst wird php alles bis zum nächsten einfachen Zitat beinhalten. – ncremins

+0

Ich erhalte diesen Fehler: Diese Seite enthält die folgenden Fehler: Fehler in Zeile 1 in Spalte 202: Öffnen und Ende Tag Mismatch: Beschreibung Zeile 0 und td Unten ist ein Rendering der Seite bis zum ersten Fehler. Zeitplan - 10. April 2012 Zeitplan.http: //site.com/Timetable für 10. April 2012 – Logan