如何给网站做一个RSS功能
比如看到很多博客和网站都有http://site.com/feed,然后打开就是一个rss feed,用php或者ci要怎么实现啊?给个思路按照那个格式输出文本就是啦 我参照网上的文章做了一下,http://localhost/ci_volunteers/index.php/feed,出现以下的问题:
XML解析错误:xml处理指令不在实体的开始部分
位置:http://localhost/ci_volunteers/index.php/feed
行:1,列:3:<?xml version="1.0" encoding="UTF-8"?>
--^
这个问题只在firefox和chrome出现,IE能正常显示RSS内容。查了原因,跟这篇文章描述的原因一致,
http://www.99jianzhan.com/jz/service/discuz-xml-error/
但这是Discuz的问题,我想知道CI框架里导致这一问题发生的始作俑者在哪儿?如何解决? 很可能是BOM
本帖最后由 phoenixg 于 2011-8-14 14:49 编辑
visvoy 发表于 2011-8-14 14:38 static/image/common/back.gif
很可能是BOM
我用editplus把模型视图控制器的有关文件都另存成不含bom的格式,还是不行
顺便问下,什么是bom
我把所有有关文件末尾的?>去掉后,问题就解决了!
<?php
$sql = "select * from is_haigui where status=1 order by created desc limit 5";
$query = $this->db->query($sql);
$result = $query->result_array();
$sql = "select * from is_photo where status=1 order by created desc limit 5";
$query = $this->db->query($sql);
$result1 = $query->result_array();
$sql = "select * from is_event where status=1 order by created desc limit 3";
$query = $this->db->query($sql);
$result2 = $query->result_array();
$sql = "select * from is_investment where status=1 order by created desc limit 1";
$query = $this->db->query($sql);
$result3 = $query->result_array();
$sql = "select * from is_job where status=1 order by created desc limit 1";
$query = $this->db->query($sql);
$result4 = $query->result_array();
$sql = "select * from pw_threads where ifcheck=1 order by postdate desc limit 5";
$query = $this->db->query($sql);
$result5 = $query->result_array();
$sql = "select * from pw_threads where ifcheck=1 order by lastpost desc limit 20";
$query = $this->db->query($sql);
$result6 = $query->result_array();
$now = date("D, d M Y H:i:s T");
$output = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<rss version=\"2.0\">
<channel>
<title>RSS</title>
<link>http://localhost/rss/index.php/rss</link>
<description>A Test RSS</description>
<language>zh-cn</language>
<pubDate>$now</pubDate>
<lastBuildDate>$now</lastBuildDate>
<docs>http://www.rss.com</docs>
<managingEditor>info@rss.com</managingEditor>
<webMaster>info@rss.com</webMaster>
";
for ($i=0;$i<count($result);$i++)
{
$output .= "<item><title>[海归]".$result[$i]['name']."</title>
<link>".site_url('haigui/detail/'.$result[$i]['id'])."</link>
<description>".strip_tags($result[$i]['title'])."</description>
</item>";
}
for ($i=0;$i<count($result1);$i++)
{
$output .= "<item><title>[随拍]".$result1[$i]['name']."</title>
<link>".site_url('suipai/viewphoto/'.$result1[$i]['id'])."</link>
<description>".strip_tags($result1[$i]['title'])."</description>
</item>";
}
for ($i=0;$i<count($result2);$i++)
{
$output .= "<item><title>[活动]".$result2[$i]['name']."</title>
<link>".site_url('event/getdetail/'.$result2[$i]['id'])."</link>
<description></description>
</item>";
}
for ($i=0;$i<count($result3);$i++)
{
$output .= "<item><title>[商务]".$result3[$i]['iname']."</title>
<link>".site_url('investor/getdetail/'.$result3[$i]['id'])."</link>
<description></description>
</item>";
}
for ($i=0;$i<count($result4);$i++)
{
$output .= "<item><title>[招聘]".$result4[$i]['jname']."</title>
<link>".site_url('job/getdetail/'.$result4[$i]['id'])."</link>
<description></description>
</item>";
}
for ($i=0;$i<count($result5);$i++)
{
$output .= "<item><title>[故事]".$result5[$i]['subject']."</title>
<link>".base_url().'bbs/read.php?tid='.$result5[$i]['tid']."</link>
<description></description>
</item>";
}
for ($i=0;$i<count($result6);$i++)
{
$output .= "<item><title>[最新回复]".$result6[$i]['subject']."</title>
<link>".base_url().'bbs/read.php?tid='.$result6[$i]['tid']."</link>
<description></description>
</item>";
}
$output .= "</channel>
</rss>";
header("Content-type: application/xml");
echo $output;
?>
可以参考下我做的这个....主要就是xml格式而已,弄好了很easy
zhouli520 发表于 2011-8-15 11:35 static/image/common/back.gif
可以参考下我做的这个....主要就是xml格式而已,弄好了很easy
谢谢楼上提供的参考!
mark.
页:
[1]