丰富站点摘要馈送,它的缩写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 "
} 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 "
- ";
- $title ";
foreach ($rss->items as $item)
{
$href = $item['link'];
$title = $item['title'];
echo "
}
echo "
}
mysql_close();
}
View the complete script here
Figure 1-1 显示了登录表格。
Figure 1-2 描述了请求的RSS馈送的一个典型显示。
结论
欢迎提问和评论!电子邮件可发至: jason@wjgilmore

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.

PHP에서, 특성은 방법 재사용이 필요하지만 상속에 적합하지 않은 상황에 적합합니다. 1) 특성은 클래스에서 다중 상속의 복잡성을 피할 수 있도록 수많은 방법을 허용합니다. 2) 특성을 사용할 때는 대안과 키워드를 통해 해결할 수있는 방법 충돌에주의를 기울여야합니다. 3) 성능을 최적화하고 코드 유지 보수성을 향상시키기 위해 특성을 과도하게 사용해야하며 단일 책임을 유지해야합니다.

의존성 주입 컨테이너 (DIC)는 PHP 프로젝트에 사용하기위한 객체 종속성을 관리하고 제공하는 도구입니다. DIC의 주요 이점에는 다음이 포함됩니다. 1. 디커플링, 구성 요소 독립적 인 코드는 유지 관리 및 테스트가 쉽습니다. 2. 유연성, 의존성을 교체 또는 수정하기 쉽습니다. 3. 테스트 가능성, 단위 테스트를 위해 모의 객체를 주입하기에 편리합니다.

SplfixedArray는 PHP의 고정 크기 배열로, 고성능 및 메모리 사용이 필요한 시나리오에 적합합니다. 1) 동적 조정으로 인한 오버 헤드를 피하기 위해 생성 할 때 크기를 지정해야합니다. 2) C 언어 배열을 기반으로 메모리 및 빠른 액세스 속도를 직접 작동합니다. 3) 대규모 데이터 처리 및 메모리에 민감한 환경에 적합하지만 크기가 고정되어 있으므로주의해서 사용해야합니다.

PHP는 $ \ _ 파일 변수를 통해 파일 업로드를 처리합니다. 보안을 보장하는 방법에는 다음이 포함됩니다. 1. 오류 확인 확인, 2. 파일 유형 및 크기 확인, 3 파일 덮어 쓰기 방지, 4. 파일을 영구 저장소 위치로 이동하십시오.

JavaScript에서는 NullCoalescingOperator (??) 및 NullCoalescingAssignmentOperator (?? =)를 사용할 수 있습니다. 1. 2. ??= 변수를 오른쪽 피연산자의 값에 할당하지만 변수가 무효 또는 정의되지 않은 경우에만. 이 연산자는 코드 로직을 단순화하고 가독성과 성능을 향상시킵니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
