2012-04-11 106 views
1

我目前有一個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); 

?> 
+0

所以如果你在它是不是給XML內容,只只給PHP代碼,因爲它是瀏覽器中打開這個頁面....會這樣呢? – 2012-04-11 21:35:55

回答

3

我建議在.htaccess不添加.XML使用PHP編譯器進行處理。 而是使用mod_rewrite將請求重定向到.xml文件到php腳本。

例如:

RewriteEngine On 
RewriteRule ^(.*)\.xml$ /rss_feed.php [L,QSA]