搜尋
首頁後端開發php教程创建自定义RSS馈送汇集器_PHP

创建自定义RSS馈送汇集器_PHP

Jun 01, 2016 pm 12:36 PM
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 parser来提供可自定义的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,将存储RSS馈送信息。为例子的简单起见,我们只存储三项:唯一的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 unsigned 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 " maxlength='55' value=' />
";
echo "Password:
";
echo " maxlength='20' value=' />
";
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","aggregator","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
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
繼續使用PHP:耐力的原因繼續使用PHP:耐力的原因Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、靈活性和強大的生態系統。 1)易用性和簡單語法使其成為初學者的首選。 2)與web開發緊密結合,處理HTTP請求和數據庫交互出色。 3)龐大的生態系統提供了豐富的工具和庫。 4)活躍的社區和開源性質使其適應新需求和技術趨勢。

PHP和Python:探索他們的相似性和差異PHP和Python:探索他們的相似性和差異Apr 19, 2025 am 12:21 AM

PHP和Python都是高層次的編程語言,廣泛應用於Web開發、數據處理和自動化任務。 1.PHP常用於構建動態網站和內容管理系統,而Python常用於構建Web框架和數據科學。 2.PHP使用echo輸出內容,Python使用print。 3.兩者都支持面向對象編程,但語法和關鍵字不同。 4.PHP支持弱類型轉換,Python則更嚴格。 5.PHP性能優化包括使用OPcache和異步編程,Python則使用cProfile和異步編程。

PHP和Python:解釋了不同的範例PHP和Python:解釋了不同的範例Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP和Python:深入了解他們的歷史PHP和Python:深入了解他們的歷史Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

在PHP和Python之間進行選擇:指南在PHP和Python之間進行選擇:指南Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP和框架:現代化語言PHP和框架:現代化語言Apr 18, 2025 am 12:14 AM

PHP在現代化進程中仍然重要,因為它支持大量網站和應用,並通過框架適應開發需求。 1.PHP7提升了性能並引入了新功能。 2.現代框架如Laravel、Symfony和CodeIgniter簡化開發,提高代碼質量。 3.性能優化和最佳實踐進一步提升應用效率。

PHP的影響:網絡開發及以後PHP的影響:網絡開發及以後Apr 18, 2025 am 12:10 AM

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?PHP類型提示如何起作用,包括標量類型,返回類型,聯合類型和無效類型?Apr 17, 2025 am 12:25 AM

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境