使用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 相关文章推荐
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
THINKPHP支持YAML配置文件的设置方法
Mar 17 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
详解PHP中的Traits
Jul 29 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
PHP简单实现文本计数器的方法
Apr 28 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
php原生数据库分页的代码实例
Feb 18 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
jQuery实现冻结表格行和列
2015/04/29 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
es6系列教程_ Map详解以及常用api介绍
2017/09/25 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
制定岗位职责的原则
2013/11/08 职场文书
班长岗位职责
2013/11/10 职场文书
职业生涯规划设计步骤
2014/01/12 职场文书
工作表现自我评价
2014/02/08 职场文书
工作建议书范文
2014/05/13 职场文书
报到证办理个人委托书
2014/10/06 职场文书
开业典礼致辞
2015/07/29 职场文书
微信早安问候语
2015/11/10 职场文书
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript