I have an RSS feed which for some reason is not showing my PHP variables. When the feed is returned it comes back with the raw tags for example the title will be Timetable $yesterdayd instead of Timetable - Tuesday 10th April
<?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);
?>
Any ideas?
Use double quotes for the output strings. The variables don't interpolate with single quotes I think.
So like
$output .= "<title>Timetable for $yesterdayd</title>";
That should do it. The page DOES have a php extension, right?
EDIT:
When you're interpolating arrays or objects, use syntax like this {$row['username']} or {$object->property}, but when you're calling a function, you cannot interpolate, you MUST concatenate:
"<description>" . htmlspecialchars($row['username']) . "</td>";
Also, make sure you're not now mixing single and double quotes -- it looks like the code you pasted as a response mixes them.
single quote strings will not compute php variables.
i.e.
'<title>Timetable - $yesterdayd </title>';
should be
"<title>Timetable - {$yesterdayd} </title>";