使用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
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
PHP网站备份程序代码分享
Jun 10 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
采用ThinkPHP中F方法实现快速缓存实例
Jun 13 PHP
destoon公司主页模板风格的添加方法
Jun 20 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
php数据结构之顺序链表与链式线性表示例
Jan 22 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
Sep 18 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对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
颜色选择器 Color Picker,IE,Firefox,Opera,Safar
2010/11/25 Javascript
Js如何判断客户端是PC还是手持设备简单分析
2012/11/22 Javascript
浅析js封装和作用域
2013/07/09 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
2015/02/27 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
python字典get()方法用法分析
2015/04/17 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
基于python log取对数详解
2018/06/08 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
Python列表操作方法详解
2020/02/09 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python IDLE添加行号显示教程
2020/04/25 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
法制宣传实施方案
2014/03/13 职场文书
倡议书范文格式
2014/05/12 职场文书
司法助理专业自荐书
2014/06/13 职场文书
导游词范文
2015/02/13 职场文书
聚会通知怎么写
2015/04/23 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL