使用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
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
Jun 21 PHP
PHP连接Access数据库的方法小结
Jun 20 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 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
最小化数据传输――在客户端存储数据
2006/10/09 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
js opener的使用详解
2014/01/11 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
JavaScript学习笔记整理之引用类型
2016/01/22 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
原生JS实现$.param() 函数的方法
2018/08/10 Javascript
js实现图片实时时钟
2020/01/15 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
Python 实现一个手机号码获取妹子名字的功能
2019/09/25 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
Python hashlib模块的使用示例
2020/10/09 Python
运动会稿件200字
2014/02/07 职场文书
陈欧广告词
2014/03/14 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
技术合作协议书范本
2014/04/18 职场文书
推荐信怎么写
2014/05/09 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
党员目标管理责任书
2014/07/25 职场文书
学习党代会心得体会
2014/09/05 职场文书
2015年教师党员自我评价材料
2015/03/04 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
怎么禁用Windows 11快照布局? win11不使用快照布局的技巧
2021/11/21 数码科技
vue elementUI表格控制对应列
2022/04/13 Vue.js