快速业务通道

在PHP中使用Sockets:从Usenet中获取文件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-26
文章或者从这服务器移除出去了,或者被他的作者取消了(是的,这是可能的,也是很容易实现的),或者是删除了。
小心起见,在选择新闻分组之前,服务器可能需要认证,当然这是由服务器是否公开或者私有来决定的。一般是允许任何人获取新闻,但发表新闻需要通过认证。
<?php
//$cfgUser    = "xxxxxx";
//$cfgPasswd    = "yyyyyy";
$cfgNewsGroup    ="alt.php";
// identification required on private server
if($cfgUser) {
    fputs($usenet_handle,"AUTHINFO USER".$cfgUser."\n");
    $tmp=fgets($usenet_handle,1024);
    fputs($usenet_handle,"AUTHINFOPASS".$cfgPasswd."\n");
    $tmp=fgets($usenet_handle,1024);
    // check error
    if($tmp!="281Ok\r\n") {
        echo"502Authentication error\n";
        exit();
    }   
}
// select newsgroup
fputs($usenet_handle,"GROUP ".$cfgNewsGroup."\n");
$tmp=fgets($usenet_handle,1024);
if($tmp=="480 Authentication required for command\r\n") {
    echo"$tmp\n";
    exit();
}   
$info=split(" ",$tmp);
$first=$info[2];
$last=$info[3];

print"First : $first\n";
print"Last : $last\n";
?>
 
获取一些文章
现在我们已经有最新文章的A索引号,那就能很容易的获取最新的十篇文章。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$boucle\n");   
    $article="";
    $tmp=fgets($usenet_handle,4096);
    if(substr($tmp,0,3) !="220") {
        echo"+----------------------+\n";
        echo"Error onarticle $boucle\n";
        echo"+----------------------+\n";
    }
    else {
        while($tmp!=".\r\n") {
            $tmp=fgets($usenet_handle,4096);
            $article=$article.$tmp;
        }       
        echo"+----------------------+\n";
        echo"Article$boucle\n";
        echo"+----------------------+\n";
        echo"$article\n";
    }   
    $boucle++;
}
?>
我们仅仅从这个服务器的这个分组上获取了十条最新的新闻。你也可以使用HEAD命令来至获取文章

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号