我正在尝试为我的网站构建一个RSS Feed 当我运行rss页面时,我收到此错误:
XML解析错误:格式不正确的位置: http://localhost/projects_rss.php第1行,第2列:
这是我的代码或至少是xml的一部分
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 :(得分:0)
问题是你正在回应特殊字符,例如“&lt;”和“&gt;”。您需要将输出包装在htmlspecialchars()中,或者只替换所有出现的“&lt;”和“&gt;”分别为<
和>
。请注意,还有其他字符可能需要进行此类处理,因此htmlspecialchars()(或htmlentities())可能是您最安全的选择。