快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

利来最老的品牌官网首页:创建自定义RSS馈送汇集器



富厚站点择要馈送,它的缩写RSS更着名,它是XML若何对信息破费的要领孕育发生主要影响的巨大年夜典型。这种 XML术语是用于总结信息的一种盛行款式,这种信息即:范例地、但不是专门面向新闻的数据,它包括标题、择要、作者和宣布日期。建立和分配RSS馈送变得日益盛行,主要有几个缘故原由:

竞争:跟着为客源竞争的Web站点数的持续增长,使他们的信息到达破费者的选择性规划也老是在斟酌之中。

信息超载:很显着,破费者发明他们越来越依附于日益增长的Web 站点。那便是说,从一个站点到另一个站点的线性导航要领一点也没有减少他们的依附性。浏览站点择要而且不用经常转移图表、广告和附加的外来资料,是一个投资光阴起码、迅速筛选所需信息的紧张措施。

普遍性: 基于XML的款式清楚的划分了数据和表达式,从而易于转换以广泛适应不合媒体散播出口(标准的Web浏览器、信元电话、纸张、电子邮件等等)的不合需求。

只管RSS馈送的应用曾经归入精英之手,但这些日子他们彷佛到处呈现。Yahoo!,Christian Science Monitor、CNET News.com、和 The BBC 只是迩来供给RSS馈送给他们的读者的Web站点中的几个而已。

留意:那些对RSS完全陌生的读者,请用一分钟光阴装载Yahoo的技巧馈送(http://rss.news.yahoo.com/rss/tech)到你的浏览器上。你可以迅速的认出组织优越的数据款式,它将自己借给了表达式的转换,这是XML术语的范例之处。对付这个论题的完备叙述来说,便是在你喜好的搜索引擎上实现快速搜索;你会找到的指南比你键盘操作获得的指南更多。

目录

Magpie RSS

RSS馈送

MySQL数据库

PHP 脚本

结论

在本文中,我将阐述若何应用PHP、MySQL 数据库办事器和 Magpie RSS parse利来最老的品牌官网首页r来供给可自定义的RSS馈送办事给你的Web站点用户。只管我盼望你至少有应用PHP和MySQL 的基础履历,但对付初学者来说例子应该异常轻易,以便于理解。由于你们中的大年夜部分人可能不认识Magpie RSS Parser,我会就这个紧张的对象供给一些额外的信息。

Magpie RSS

Magpie RSS Parser是在2002年晚期由Kellan Elliott-McCrea创建的,以确保他感知到的器械没有真正的基于PHP的RSS 搜集办理规划。结果就呈现了一个极佳的可行对象,它可供给一群有用特性,此中包括:

面向工具的设计:面向工具的、模块化的代码容许你绝不辛勤的将搜集特性集成到曩昔的利用上。

极高的可设置设置设备摆设摆设性:Magpie的搜集懈弛存行径很轻易经由过程一个优越贯穿的设置设置设备摆设摆设策略来改动。

馈送缓存:这个异常酷的特性可以本地缓存RSS馈送(到办事器上),从而保存带宽并且增强利用的机能

由于它是在GPL license下宣布的,以是你不用掏钱,只要你乐意,并且遵守许可证的条目和前提,就可以自由应用这个软件。它只必要应用XML(expat) 支持编译的PHP (4.0+)的新版本。.

RSS馈送

让我们从利用的内容开始评论争论。你爱好供给哪种类型的RSS馈送给你的用户?找到RSS馈送就似乎细读你喜好的搜索引擎一样轻易:只要输入"RSS" 和一些其他的选择主题如"technology," "science,"或者"sports."等等。对付一个偷懒的人来说(编程行业中没有不好的特点),经由过程Web. Feedster (http://www.feedster.com/)上弹出的许多RSS搜集器浏览也是我小我喜爱之一。为了这篇指南,我将应用下列馈送:

Yahoo! Top Stories (http://rss.news.yahoo.com/rss/topstories)

MSDN, Recent Technical Articles (http://msdn.microsoft.com/rss.xml)

Infoworld Latest News (http://www.infoworld.com/rss/news.rdf)

PCWorld Latest News (http://rss.pcworld.com/rss/latestnews.rss)

eWeek Technology News (http://rssnewsapps.ziffdavis.com/tech.xml)

你应该记着:有些RSS宣布商必要许可后才容许你将它们的馈送用于商业用途。是以,在安装之前你永世要多看几遍任何应用条目。

请记下馈送位置、标题、和URL,你乐意的话还可以记录描述。鄙人一部分,我们将创建收藏这些信息的数据库表格。

MySQL数据库

为了实现我们的自定义RSS办事,只必要三个数据库表格。这部分,我将先容这三个表格。

rssfeed

第一个表格rssfeed,将存储RS利来最老的品牌官网首页S馈利来最老的品牌官网首页送信息。为例子的简单起见,我们只存储三项:独一的ID、标题和URL。在更为繁杂的利用中,你可能存储其它细节,如描述、馈送添加到搜集器的日期、继续两次馈送检索之间的等待秒数、和其它相关信息。

mysql>CREATE TABLE rssfeed (

>rowID tinyint unsigned not null auto_increment,

>title varchar(150) not null,

>url varchar(150) not null,

>primary key(rowID)

>);

Table 1-1显示了添加所选择的RSS馈送之后的表格内容:

user

第二个表格user 存储关于应用该RSS搜集器的用户的信息。每一个用户只能有一个独一标志,这样我们才能供给自定义办事;假如这样,每个用户可用一个简单的整数值来标记。在用户治理他自己首选的馈送并且浏览馈送之前必要登录,这样他的电子邮件和密码也会保存下来。为了安然起见,密码可作为一个由32个字符组成的弗成取消的散列表保存。别的,就像rss 表格一样,在真实的利用中,该用户表格可变得加倍繁杂;然则,实现我们搜集机制的需要部分仍可在我们的表格中找到。

mysql>CREATE TABLE user (

>rowID smallint unsigned not null auto_increment,

>email varchar(55) not null,

>pswd varchar(32) not null,

>primary key(rowID)

>);

为了例子的简单起见,Table 1-2展示了存储在该表格内的用户信息示例:

Table 1-2: 用户信息示例

user_to_rss_feed

第三个表格user_to_rss_feed,将用户和他们选择的RSS馈送联系在一路。这个表格有两列组成:userid 和rssid。userid 标记用户;rssid标记RSS 馈送。

mysql>CREATE TABLE user_to_rss_feed (

>userid smallint unsigne利来最老的品牌官网首页d not null auto_increment,

>rssid tinyint unsigned not null

>);

Table 1-3在我们的用户选择了他们喜好的馈送之后供给了该表格内容的模拟。

Table 1-3: User/RSS 馈送映射

PHP 脚本

着末一个义务便是创建显示用户所选的RSS馈送的脚本。这个脚本的标题为myrss.php,他弗成思议的简单,只包孕两个主要组件:

Login: 用户必要登录才能浏览他的自定义的馈送。这可以经由过程应用一个简单的表格和一些确认供给的电子邮件地址与密码的逻辑就可以完成了。

RSS Aggregation and Delivery: 假如呈现有效登录(或者有效会话;见下一段),我们将应用Magpie RSS Parser 来显示用户所选的RSS馈送。

要避免用户诉苦每次必要RSS "fix,"时都要重复登录,我应用了PHP的会话期处置惩罚特性。一旦成功的登录,用户的独一标志符就作为会话期变量存储起来,以便于今后的检索。记着,存储刻日完全取决于你若何设置设置设备摆设摆设你的PHP安装的会话期功能。

Listings 1-1 和1-2为两个组件都供给了注释码。两个组件都装置好并可用于浏览,浏览功能可经由过程在Listing 1-2结尾部分设置链接来实现。

Listing 1-1:登录组件

// Start or continue a session

session_start();

// Has the user

if (! isset($_SESSION['userid']))

{

if (! isset($_POST['email']))

{

echo "";

echo "Email:

";

echo "

";

echo "Password:

";

echo "

";

echo "";

echo "";

} else {

mysql_connect("localhost","aggregator","secret");

mysql_select_db("rssfeeds");

$email = $_POST['email'];

$pswd = md5($_POST['pswd']);

$query = "SELECT rowID, email, pswd FROM user

WHERE email='$email' AND '$pswd'";

$result = mysql_query($query);

if (mysql_numrows($result) != 1)

{

echo "

Could not login!

";

} else {

list($rowID, $email, $pswd) = mysql_fetch_row($result);

$_SESSION['userid'] = $rowID;

}

mysql_close();

} // end isset[email]

}

Listing 1-2. RSS搜集和呈送组件

if (isset($_SESSION['userid'])) {

require_once("rss_fetch.inc");

mysql_connect("localhost","agg利来最老的品牌官网首页regator","secret");

mysql_select_db("rssfeeds");

$userID = $_SESSION['userid'];

$query = "SELECT rss.title, rss.url

FROM rssfeed AS rss, user_to_rss_feed as userrss

WHERE userrss.userid='$userID'

AND rss.rowID=userrss.rssid";

$result = mysql_query($query);

while(list($title,$url) = mysql_fetch_row($result))

{

$url = "$url";

$rss = fetch_rss( $url );

echo "" . $rss->channel['title'] . "

";

echo "";

foreach ($rss->items as $item)

{

$href = $item['link'];

$title = $item['title'];

echo "

$title";

}

echo "";

}

mysql_close();

}

View the complete script here

Figure 1-1 显示了登录表格。

Figure 1-2 描述了哀求的RSS馈送的一个范例显示。

结论

迎接提问和评论!电子邮件可发至: jason@wjgilmore

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: