使用PHP生成一个XML文件
问题描述:
我目前有一个PHP脚本,当它运行时输出一个XML文件(但作为feed.php而不是feed.xml)我被告知添加到我的.htaccess,它应该修复它:使用PHP生成一个XML文件
AddType application/x-httpd-php .xml
但是由于某种原因不能正常工作。
我最喜欢的脚本是做什么的 - 当ran运行时用它的内容输出生成一个feed.xml文件,而不是只输出php页面上的内容。
这里是我的代码:
<?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>';
while ($row = mysql_fetch_array($result)) {
//BODY OF RSS FEED
$output .= '<item>';
$output .= "<description><td>" . htmlspecialchars($row['username']) . "</td><td>" . htmlspecialchars($row['time']) . "</td></description>";
$output .= '</item> ';
}
//CLOSE RSS FEED
$output .= '</channel>';
$output .= '</rss>';
//SEND COMPLETE RSS FEED TO BROWSER
echo($output);
?>
答
我建议在.htaccess不添加.XML使用PHP编译器进行处理。 而是使用mod_rewrite将请求重定向到.xml文件到php脚本。
例如:
RewriteEngine On
RewriteRule ^(.*)\.xml$ /rss_feed.php [L,QSA]
所以如果你在它是不是给XML内容,只只给PHP代码,因为它是浏览器中打开这个页面....会这样呢? – 2012-04-11 21:35:55