理解Zend 框架(4): 用Zend_HTTP_Client 获取无提要的内容

2016-01-29 12:53 9 1 收藏

理解Zend 框架(4): 用Zend_HTTP_Client 获取无提要的内容,理解Zend 框架(4): 用Zend_HTTP_Client 获取无提要的内容

【 tulaoshi.com - PHP 】

    并非所有的站点都包含提要,但是跟进某个地方的所有改动仍然是很有用的。本文将介绍如何使用 Zend_HTTP_Client 模块创建代理,从而将数据提取到提要阅读器界面中。在本文中,您将学到:

如何使用 Zend_HTTP_Client 模块加载网站数据。
如何保存提要条目的全文以及那些不支持提要的网页的全文。
如何在提要阅读器界面中阅读已保存提要条目的全文。
在本文的末尾,将完成提要阅读器应用程序的框架。首先,修改数据库纲要,其次,更新代码以支持新的纲要,然后添加将提要条目和网页保存到数据库中的功能。最后,使用 Zend_HTTP_Client 模块支持用户有选择地将条目保存到数据库中,并在已更新的在线提要阅读器中查看它们。

更新数据库纲要

为了将提要条目保存到提要阅读器界面中,首先我们需要更新数据库纲要。在 MySQL 控制台中键入清单 1 中的SQL 语句。


清单 1. 更改数据库纲要

drop table feeds;

create table feeds
(feedname varchar(256), link varchar(512), rss varchar(5));

insert into feeds values
('Fox Sports',
 'http://feeds.feedburner.com/foxsports/rss/headlines',
 'true'),
('Google News',
 'http://news.google.com/?output=rss',
 'true'),
('Yahoo News',
 'http://rss.news.yahoo.com/rss/topstories',
 'true'),
('phpbb',
 'http://www.phpbb.com/phpBB/viewforum.php?f=14',
 'false'),
('MySQL Forums :: PHP',
 'http://forums.mysql.com/list.php?52',
 'false'),
('SitePoint Forums :: PHP',
 'http://www.sitepoint.com/forums/forumdisplay.php?forumid=34',
 'false');

drop table savedentries;

create table savedentries
(username varchar(20), feedname varchar(256), channelname varchar(256),
 link varchar(512), entrysaved varchar(5), entrydata varchar(307200));
 


您能看到 feeds 表添加了一个新的字段:rss。这个字段用于辨别该提要是 RSS 提要还是不支持提要的网页。订阅列表中添加了另外三个不同 PHP 论坛的提要。请注意,对于第 3 部分中的提要,这个新字段值为 true,而三条新提要的值则为 false,这说明它们是网页,而非 RSS 提要。savedentries 表有两个新的字段:entrysaved 和 entrydata。entrysaved 字段说明 entrydata 字段中的数据是有效数据。entrydata 字段保存了该文章的全文。新的可订阅网页如图 1 所示。

现在需要回到第 3 部分的代码中做一些更改。

更新 IndexController 类

稍后我们将对 viewFeeds 视图进行更新,这需要当前用户所订阅的非 RSS 提要的列表,该列表列出了已订阅的提要和网页。在 IndexController 类中更改 indexAction 方法,如下所示。


清单 2. IndexController 类中的 indexAction 方法

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

    public function indexAction()
    {
...
            $select-where('feeds.feedname=subscribedfeeds.feedname');
            $select-where('feeds.rss=?', 'true');
            $rssResults = $db-fetchAll($select);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

            $select = $db-select();
            $select-from('subscribedfeeds, feeds', '*');
            $select-where('subscribedfeeds.Username = ?', $username);
            $select-where('feeds.feedname=subscribedfeeds.feedname');
            $select-where('feeds.rss=?', 'false');
            $webResults = $db-fetchAll($select);

            $view = Zend::registry('view');
            $view-username = $us

来源:http://www.tulaoshi.com/n/20160129/1487966.html

延伸阅读
mysql+httpd+gd+php+zend的安装 安装mysql shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> bin/...
本周一,甲骨文(Oracle)与Zend公司联合对外宣布,正式推出“Zend Core for Oracle”的beta版本,这是一项将甲骨文的数据库与Zend的PHP开发环境整合为一体的技术。 “Zend Core for Oracle”技术使得PHP的用户能够在Oracle环境下开发应用软件。这两家公司的官方消息称,beta版本现在已经能够通过双方的Web站点下载试用,其最终版本有望在今年...
Freebsd5.1release+httpd-2.0.47+mysql-4.0.14+php-4.3.2+phpMyAdmin-2.5.1+ZendOptimizer-2.1.0b-FreeBSD4.0-i386+discuz2.0-gb2312详细安装教程 刚接触linux是今年4月的事情,装过不少linux发行版本,最终还是选择了unix中的freebsd,喜欢它的简洁。不过我也是初学者,将这10多天学freebsd的经验总结给大家分享,希望大家能够少走当初我的一...
标签: PHP
            PHP文件的源码都是明文,这对于某些商业用途来说,并不适合。   因此考虑使用加密的手段保护源码。      实在不耐烦等待zend出编译器,而且编译和加密本质上不是一回   事儿。自己动手、开始修改。      ...
Zend Studio教程之设置字体大小和颜色   1.点击菜单栏,然后点击。 2.展开 General--Appearance--Color and Fonts--Basic 3.找到Basic的最后一项, 点击 4.字体推荐 YaHei Consolas Hybrid、Source Code Pro这两款等宽字体,字体大小建议修改为12或14。

经验教程

624

收藏

23
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部