2011-11-27 67 views
0

我試圖建立一個RSS提要我的網站 當我運行RSS頁面我得到這個錯誤:解析RSS XML錯誤:沒有很好地形成

XML Parsing Error: not well-formed Location: http://localhost/projects_rss.php Line Number 1, Column 2:

這裏是我的代碼,或者至少它

foreach($projects_array as $projects_array){  
    $parr[]= array(
     'title' => (string)$projects_array->title, 
     'description' => (string)$projects_array->text, 
     'link' => (string)'www.imjobs.com/project.php?project='.$projects_array->id , 
     'date' => (string) date("D, d M Y H:i:s O", $projects_array->datee), 
    ); 
} 

header("Content-Type: text/xml;charset=iso-8859-1"); 

    echo '<?xml version="1.0" encoding="ISO-8859-1"?> 
    <rss version="2.0"> 
    <channel> 
    <link>http://www.mysite.com</link> 
    <language>en-us</language> 
    <copyright>Copyright (C) 2011 mimjobs.com</copyright> 
    <pubDate>' . date("D, d M Y H:i:s O", time()) . '</pubDate>'; 
    foreach ($parr as $p){ 

    echo '<item>'; 
    echo '<title>' . $p['title'] . '</title>'; 
    echo '<description>'.$p['description'].'</description>'; 
    echo '<link>' . $p['link'] . '</link>'; 
    echo '<pubDate>' . $date . '</pubDate>'; 
    echo '</item>'; 
    } 
    echo '</channel>'; 
    echo '</rss>'; 
    ?> 

回答

0

問題XML部分是你呼應特殊字符,如「<」和「>」。您需要將輸出包裝在htmlspecialchars()中,或者將和&gt;分別替換爲「<」和「>」的所有匹配項。請注意,其他角色可能需要進行此類處理,因此htmlspecialchars()(或htmlentities())可能是您最安全的選項。

+0

我仍然得到這個錯誤顯然它得到了一些待辦事項與我的PHP代碼 當我從維基百科xml頁複製乾淨的xml代碼!我的代碼insted我仍然得到這個錯誤,只要我刪除所有的PHP代碼從它工作正常的頁面 – max

+0

這可能是你使用多個回聲而不是一個單一的聲明。我在這裏猜測,但嘗試將所有文​​本分配給一個字符串變量,然後在構建一個字符串後回顯該字符串(換句話說,創建一個變量,如$ mystring =「」,然後用「$」替換所有「echo」語句mystring。=「來構建字符串,最後你可以做」echo $ mystring「; – TheOx

相關問題