使用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 30 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
解析crontab php自动运行的方法
Jun 24 PHP
分享一则PHP定义函数代码
Feb 26 PHP
PHP中预定义的6种接口介绍
May 12 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
完美利用Yii2微信后台开发的系列总结
Jul 18 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
php文件上传原理与实现方法详解
Dec 20 PHP
PHP 使用位运算实现四则运算的代码
Mar 09 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下常用正则表达式整理
2010/10/26 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
php使用curl实现简单模拟提交表单功能
2017/05/15 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
javascript 写类方式之四
2009/07/05 Javascript
js鼠标滑轮滚动事件绑定的简单实例(兼容主流浏览器)
2014/01/14 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
sogou地图API用法实例教程
2014/09/11 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
2017/01/16 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
js 调用百度分享功能
2017/02/27 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
javascript实现一款好看的秒表计时器
2020/09/05 Javascript
python 循环while和for in简单实例
2016/08/16 Python
python同步windows和linux文件
2019/08/29 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
有机童装:Toby Tiger
2018/05/23 全球购物
高三励志标语
2014/06/05 职场文书
2015年保洁员工作总结
2015/05/04 职场文书