使用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之第六天
Oct 09 PHP
php基础知识:类与对象(3) 构造函数和析构函数
Dec 13 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
Aug 09 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
Apache启动报错No space left on device: AH00023该怎么解决
Oct 16 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP中“=&gt;
Mar 01 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
Thinkphp整合阿里云OSS图片上传实例代码
Apr 28 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 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
构建简单的Webmail系统
2006/10/09 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
php通过exif_read_data函数获取图片的exif信息
2015/05/21 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
实例解析php的数据类型
2018/10/24 PHP
js 三级关联菜单效果实例
2013/08/13 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
Python闭包思想与用法浅析
2018/12/27 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
在pycharm中debug 实时查看数据操作(交互式)
2020/06/09 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
入党积极分子学习党的纲领思想汇报
2014/09/13 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
离婚被告答辩状
2015/05/22 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers