巧用RSS 2生成自己的新闻feed

来源 :个人电脑 | 被引量 : 0次 | 上传用户:gandianci20
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在新一轮的Web开发中,如何将“播客”即英文为Podcast或Podcasting的应用搭建并运行已经成为一个热点。当然,目前已经有很多服务可以实现,其底层的技术为RSS,即Reallly Simple Syndication。
  较早的RSS 0.91版本已经被广泛地支持,而且它要算手工编码最容易的版本。不过,RSS 0.91实在是比较基础,它虽然可以从网站上聚合新闻信息,但是这些新闻信息中包括了大量的无用文本信息。另外,它缺少一些十分有用的属性,比如聚合到的信息的发布日期等。
  播客技术的开发通常采用RSS 2,因为新版本中添加了众多有用的属性,比如包括播客要用到的enclosure等属性。我们现在就来看看这些新功能的“本领”。简单例子如,你可以利用enclosure属性来描述软件的更新或其他需要定期描述的文件,包括价格表,通讯录以及值班记录等。
  
  简化
  
  


  在RSS 0.91版本中,对一个feed的描述看起来基本如图1所示。大部分的元素是必须的,还有一些是可选的,像“语言language”就不是一定要被描述出来,如果必须描述则可以用一个选项来包含这些描述信息,而不是仅仅一个标题和链接。
  RSS 2确实有了不小的提升,在频道和选项元素中添加了更丰富的更有益处的信息。其中大部分是可选的,不过的确大大提高了效率。
  
  更新
  
  需要注意的是,version的值设置为“2”。你可以在频道中添加可选的图片,和0.91版本一样,也有时间(ttl)标记,其表示频道中信息的有效时间,是不需要检查的,也就是说,一般表现良好的客户端是不会从你的服务器上检查这个更新的。所以,如果你输入:
  
  120
  到feed描述中,那么即使那些设置每5分钟更新一次的RSS阅读器也不可能频繁干扰你的服务器了。
  另外,还有其他几个控制时间的元素。PubDate是内容的发布时间,这个时间有可能是按天更新的,比如新闻杂志类内容,也可能是以月为时间单位进行更新。邮件的时间格式是类似的,可参见RFC 822(www.rfc.net)。lastBuildDate也是类似的,其定义内容频道的改变,最典型的为最近被改变的选项的日期,标记语句如下:
  
  Mon, 25 Jul 2005 10:17:004 GMT
  你当然可以指定具体某些天或小时可以跳过,这样新闻阅读器就不能在非工作时间里打扰你的站点。
  你在2.0版本中还可以在选项中添加puDate入口。理论上说,可以将日期设定在未来,那么RSS阅读器只会在这个日期到来的时候发布内容,不过具体还要看实际运行情况而定。如果你不希望人们看到RSS feed中的相关内容,不要使用这个方法。
  一个新的标记guid为每个选项指定了全局唯一标识,这个标记使得客户端阅读软件可以识别出内容是完全崭新的还是只在原有选项上的更新。你也可以将其定义为permalink,即读者如果想稍后阅读某些内容,可以用书签标记,这样就避免了链接很容易消失的问题。标记语句如下:
  
  
  http://www.nigelwhitfield.com/
  work/pcw/

  


  


  通常,你会对guid和link属性使用相同的信息。注意,isPermaLink的默认值为true,如果把它设置为false,那么URL将会永远实效。
  RSS 2另一值得称道的就是可编码的HTML属性,比如你希望在文章条目描述中使用粗体或斜体,你就可以使用“&”进行编码:
  
  
  UPDATED
I’ve added
  extra information to this
  article…

  这样就会使“UPDATED”在描述最开始的地方就显示为粗体了。
  
  关于Enclosures
  
  播客技术是endclosure包含的一个简单类型。你可以使用enclosure元素将其添加至一个RSS feed中去。它共有三个属性:url,length以及type;url不用解释了,length是指文件字节的长度,type为Mime。一个Mime type是一种类别,后会跟着一个/,即一个分类里还会包含类别。举个例子,一个MP3 podcast中会包括audio/mpeg的两个类别;一个rtf文件会包括application/rtf两个类别;一个web页会包括text/html两个类别。因此,如果我们有一个PDF文档,可以添加enclosure到RSS feed中,那么在一个条目描述的最后看起来就会如图2所示。
  endclosure元素本身就是很完整的了,不需要对应的,所以不用担心会忘记了。
  
  用好enclosure
  
  其实针对enclosure最流行的应用要算播客技术了,目前已经有很多不错的软件可以作为制作播客的工具,比如Lemon Ipodder和iTunes。而且这些软件在描述音频文件使用RSS enclosure时算不错的解决方案,但是如果你要利用此机制完成其他任务就显得功能薄弱了。
  比如,如果Lemon Ipodder下载了PDF文档,它会把此文档放入到Windows Media Player中播放,这显然是错误的。相对来说,iTunes的表现好许多,当它遇到这种情况时会显示出一个书状的图标并可以正确地打开PDF文档。所以,如果你是使用iTunes玩播客的用户,还可以用其从网上搜集文档。
  Windows用户可以登录Voxlite网站(www.stevenwood.org),苹果用户则可以在www.ranchero.com网站上找到完整版本的Excellent Netnewswire,你可以下载保存文件,如果是合适的类型就可以直接下载到iTunes的库中去了。
  当然,选择enclosure对于那些正在使用支持podcase/enclosure的RSS阅读器的用户来说是很实用的,你仍然可以使用相应机制把信息发布给每个人,即使他们在PC上并没有安装最新的软件。右侧的代码例子中,我们使用了guid和permalink,结果是和文件中的download,URL相一致的。我们也可以使用同样的地址添加链接元素。这样至少选择一种能保证即使一些用户使用的是诸如Safari的内置RSS阅读器或Opera等不支持enclosure的阅读器也仍旧可以下载内容到自己的计算机中的方法。
  
  启动属于自己的新闻服务
  
  既然已经懂得如何创建feed,那么在网站中添加脚本以展示新闻和信息就很容易了。笔者就建立了带有简单新闻发布栏目的个人视频网站。因此,其实创建完整的新闻页面和一个从相同信息得到的RSS feed也是小菜一碟。
  在以上的这个例子中,需要通过在内容管理中添加HTML来实现在新闻故事中包括链接和一些其他相关信息的目的。当然,如果不需要RSS feed在页面上显示信息也是可行的。还好,PHP标记中可以找到易用的属性来应对此类问题。
  新闻描述存储的位置可以通过以下语句使其显示在新闻页面上:
  
  <?php echo $row_news4
  [‘message’]; ?>
  若要其与RSS描述匹配必须要做的是以下语句:
  
  <?php echo html4
  entities($row_news4
  [‘message’]); ?>
  测试feed脚本是很重要的,你可以通过登陆像http://feedvalidator.org/这类网站来进行测试。有一些RSS阅读器兼容性较高,有一些则偏低。对于Safari和Opera,运行一个启动RSS feed的样例脚本很顺利;但是,并不是所有的应用程序都这么“宽容”,比如Netnewswire就拒绝对识别feed的初次尝试,好在其包括一个可以直接链接到Feed Validator的链接,可以解析text/html类型的内容。
  解决这类问题可以进行简单修复,以下的脚本就可以实现:
  
  header(‘Content-Type:
  application/xml’);
  要注意的是PHP命令在脚本中是最先执行的,其可能会导致输出。否则Web服务器将会通知包括RSS阅读器在内的应用程序传递HTML,这是因为其中的一些RSS阅读器无法识别相关的feed。
其他文献
日前,英特尔公布了他们在芯片设计方面的一大重要改变:他们将关注的重点由芯片的速度转移到了能耗效率上面。其首席执行官Paul Otellini表示,每瓦特的性能(performance per watt)将替代原来的GHz成为芯片的新指标。早在2000年的时候,全美达(Transmeta)曾发布了低功耗的处理器Crusoe,其间就提出了能耗这一指标。  Crusoe的存在曾逼迫英特尔重视这一指标,并
期刊
由于三星(Samsung)的下一代便携式数字音乐播放器将能够记录卫星广播节目,因此他们开始关心航空航天技术的发展,其研发的两款闪存式播放器均内置了XM卫星广播接收器,能够随时录下当时正在播放的广播节目,以便用户日后再进行播放。  和其它MP3相同的是,这两款MP3仍旧可以存储用户从网络上购买的歌曲,或者是从用户的私人收藏中导入相关的曲目,而且还能够针对已经存入的曲目定制自己的播放列表。不过,那些录
期刊
尽管将对航空设备带来一定的隐患,能够将家庭供电线路连接到网络的新一代设备还是开始正式投放市场。该设备使用了由低频交流电中分离出的低功耗高频信号,之所以会影响到航空设备,是由于电线在网络传输中充当了天线的作用,因此会对无线电的接收造成干扰。  实际上,这种技术是一种经过伪装的无线连接。而家庭中的供电线路则由数个回路组成,大多数为每层两组,其中一组负责所有插座线路,而另一组则负责照明线路。  Devo
期刊
10月14日,微软宣布在10月18日至22日在北京中国国际展览中心隆重举行的“2005年中国国际通信设备技术展览会”。秉持一贯的“为消费者提供方便快捷的全新生活理念,共同推动中国通信产业的蓬勃健康发展”的承诺,微软将以比往年更加强大的阵容参加这次中国通信行业的盛会,为到场的观众展示一系列基于Windows MobileTM平台的移动终端、服务器软件以及行业应用的全面解决方案。  随着3G的脚步日益
期刊
近日,英特尔公司在上海国际会议中心隆重举行了为期两天的秋季IDF盛会(Intel信息技术峰会),到今年春季的北京IDF为止,已经在国内成功地举办了十届。英特尔信息技术峰会是全球最负盛名的技术论坛活动之一,是集发布、交流、展示计算机软硬件和网络、无线、通讯等领域最新技术及产品的盛会,国内的IT从业者及爱好者也已经习惯了每年两次的“豪门盛宴”。  本次上海秋季IDF是以 “多核平台,成就无限机遇”为主
期刊
10月14日,香港新华Linux有限公司宣布由中国软件行业协会共创软件分会、台北市计算机公会Linux促进会及香港新华科技教育基金会共同主办,香港新华Linux承办,澳门生产力暨科技转移中心协办的2005“金企鹅杯”两岸四地开源软件大赛颁奖典礼于10月14日于香港隆重举行。这次大赛是中、港、台、澳两岸四地在开源软件领域首度携手合作之大型比赛,旨在积极促进基础软件研发新模式,倡导和实施灵活开放源码策
期刊
如果明年新的服务开通,那么移动电话用户在诸如机场、火车站这样的地方拨打电话只需要按照固定电话的费率缴费。  一家名为Coffee Telecom的公司则计划在其位于公共区域内的数千“coffee区域”中提供一种特殊的服务,这些“coffee区域”使用了被Ofcom买断用于短距离GSM的频率。  各大公司、高校和其它公共机构也可以在举办大型国际性论坛的时候租用这种服务,这样可以省去额外的国际长途费用
期刊
我们平常所用的多系统一般是这样构建的:先安装一套操作系统,再在此基础上安装另一套操作系统,启动时用菜单进行选择,我们暂时称这种多系统为“菜单多系统”。本文要构建的多系统与之有本质的区别,两系统间是完全独立的,启动时无启动菜单,笔者将其称之为“独立多系统”。    划分两个主分区      用分区魔术师在硬盘上进行分区操作。要求创建两个主分区,其它的逻辑分区任意。如果要构建包含Windows 98的
期刊
富士通(Fujitsu)公布了其新的快速SFF(small form factor)系列硬盘的第一款产品模型,它使用了串行SCSI连接方式。  Serial Attached SCSI(SAS)与替代了老式PC扁平数据线的Serial ATA(S-ATA)连接方式相似,而数据流如果被分为几部分进行传输的话,将会比通过单根数据线传输的速率下降得更快,这就是所谓的“位时滞”理论。  S-ATA与SAS
期刊
WPS Office 2005发布以后,其强大的功能引起了广大用户的关注,同时它所拥有的特色也得到了广大用户的支持。由于WPS Office 2005已经与Word“深度兼容”,作为一个WPS的新用户,除了拥有Word的功能外,感觉它和Word的操作区别不大,让新用户也能够容易地上手。经过试用以后,笔者发现了WPS还有自己的一些亮点,在这和大家分享。    文件标签      受网络浏览器使用习惯
期刊