【发布时间】:2011-09-18 23:32:52
【问题描述】:
所以我有一个小的 PHP 脚本,可以为我的博客的 rss 提要生成一种 xml 感觉。但是,它抛出了这个错误:
此页面包含以下错误:
第 23 行第 14 列的错误:编码错误
下面是出现第一个错误之前的页面渲染。
(见此处:http://aviatex14.co.uk/rss.xml)
这是生成它的代码:
while ($line = mysql_fetch_array($result)) {
$return[] = $line;
var_dump(date("Y-m-d H:i:s", $line['timestamp']));
}
$now = date("D, d M Y H:i:s T");
$output = "<?xml version=\"1.0\" encoding=\"UTF-16\" ?>
<rss version=\"2.0\">
<channel>
<title></title>
<link></link>
<description></description>
<pubDate></pubDate>
<language>en-us</language>
<lastBuildDate>$now</lastBuildDate>
";
foreach ($return as $line) {
$output .= "<item><title>".htmlentities($line['title'])."</title>
<link>http://blog.aviatex14.co.uk/permalink.php?uid=".htmlentities($line['uid'])."</link>
<description>".htmlentities(strip_tags($line['entry']))."</description>
<pubDate>".$date = date("Y-m-d H:i:s T", $line['timestamp'])."</pubDate>
</item>";
}
$output .= "</channel></rss>";
print "Content-Type: application/rss+xml";
echo $output;
$f = fopen("rss.xml", "w");
fwrite($f, $output);
fclose($f);
任何帮助将不胜感激! :D
【问题讨论】:
-
我想知道
htmlentities在其中的任何地方都使用了什么。无论如何,您应该提供一个charset以使其至少为自己工作:php.net/manual/en/function.htmlentities.php -
encoding=\"UTF-16\"- 这真的是输出的真实编码吗? -
该行不再有错误。显然,OP 在询问后更改了提要。投票结束。
-
我做到了,但后来它抛出了这个:“第 33 行第 157 列的错误:开始和结束标签不匹配:p 行 0 和描述”
-
包含 HTML 的 Feed 项必须经过 html 编码或放入 CDATA 标记中。
标签: php mysql xml encoding rss