使用sockets:从新闻组中获取文章(三)


Posted in PHP onOctober 09, 2006

读取文章
    既然我们已经得到了最后一篇文章的文章编号,读取最后的十篇文章就是很容易的事了。RFC977中说,ARTICLE命令既可以使用文章编号,也可以使用它的消息ID.
    这里要注意,文章编号跟它的消息ID是不同的,因为每个新闻服务器分配自己的文章编号,所以同一篇文章在两个不同的服务器上的编号是不一样的,而文章的消息ID,是包括在文章的头信息里,并且是唯一的。

   <?php
     $cfgLimit =10;

     //upload last articles

     $boucle = $last-$cfgLimit;

     while ($boucle<=$last) {
       set_time_limit(0);
       fputs($usenet_handle, "ARTICLE $bouclen");

       $article="";
       $tmp=fgets($usenet_handle, 4069);
       if(substr($tmp,0,3) != "220") {
           echo "+----------------------+n";
           echo "Error on article $bouclen";
           echo "+----------------------+n";
       }
       else {
           while($tmp!=".rn") {
              $tmp = fgets($usenet_handle, 4096);
              $article .=$tmp;
           }

           echo "+----------------------+n";
           echo "Article $bouclen";
           echo "+----------------------+n";
           echo "$articlen";
       }

       $boucle++;
  }

  ?>

    我们从服务器的这个新闻组中读取了最后的十篇文章,。也可以通过使用HEAD命令读取文章的头信息,或者使用BODY命令读取文章内容。

关闭连接
    最后,通过调用fclose()函数关闭socket,结束同NNTP服务器的对话。

    <?php
      //close connection
      fclose($usenet_handle);
    ?>
    关于fclose()的更多信息,请参考 http://www.php.net/manual/function.fclose.php

结论
    在上文中,我们看到了怎样打开、使用然后关闭一个socket:连接到一个NNTP服务器,取回一些文章。使用POST命令发表文章也复杂不到哪儿去。
    下一步就是编写一个基于WEB的新闻组客户端了。
    存储这些文章,用某个搜索引擎(比如说http://www.htdig.org)对文章进行索引也是非常容易的。这样,你有了一个基于web的搜索新闻组的程序了。
    这样的程序的一个例子可以在http://www.phpindex.com/ng/得到。 

PHP 相关文章推荐
用PHP发电子邮件
Oct 09 PHP
用缓存实现静态页面的测试
Dec 06 PHP
PHP 编程安全性小结
Jan 08 PHP
php数组中删除元素的实现代码
Jun 22 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
PHP可变函数学习小结
Nov 29 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
php smtp实现发送邮件功能
Jun 22 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
PHP7生产环境队列Beanstalkd用法详解
May 19 PHP
PHP+MYSQL的文章管理系统(二)
Oct 09 #PHP
使用sockets:从新闻组中获取文章(二)
Oct 09 #PHP
通过ODBC连接的SQL SERVER实例
Oct 09 #PHP
如何对PHP程序中的常见漏洞进行攻击(下)
Oct 09 #PHP
模拟OICQ的实现思路和核心程序(三)
Oct 09 #PHP
模拟OICQ的实现思路和核心程序(一)
Oct 09 #PHP
PHP自动更新新闻DIY
Oct 09 #PHP
You might like
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
php绘制一个扇形的方法
2015/01/24 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
jquery 仿QQ校友的DIV模拟窗口效果源码
2010/03/24 Javascript
原生js拖拽(第一课 未兼容)拖拽思路
2013/03/29 Javascript
将input file的选择的文件清空的两种解决方案
2013/10/21 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python 遍历pd.Series的index和value
2019/11/26 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
美国标志性加大尺码时装品牌:Ashley Stewart
2016/12/15 全球购物
总务岗位职责
2013/11/19 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
刑事申诉状范文
2015/05/20 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
导游词之岳阳楼
2019/09/25 职场文书
Redis可视化客户端小结
2021/06/10 Redis