首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

能用PHP打开BT种子并下载到服务器端吗?解决思路

2013-10-15 
能用PHP打开BT种子并下载到服务器端吗?我想把BT文件上传到服务器并用PHP打开BT种子文件,并用PHP下载到服务

能用PHP打开BT种子并下载到服务器端吗?
我想把BT文件上传到服务器并用PHP打开BT种子文件,并用PHP下载到服务器端,一个是节省硬盘空间,还有就是速度快!

哪位知道?请贴出代码
[解决办法]
大文件不可以,小 文件可以。
时间长了,PHP执行脚本会超时 ,你必须 利用 服务器端命令下载才可以下载大文件

http://www.162cm.com/archives/287.html


<?php
    $file="铁血.torrent";
    $fp=fopen($file,"rb");
    $data=(readBt($fp));
    /**
   @author renlu xu <helloasp@hotmail.com>
    输出读入的数组。
    */
    print_r($data);
    /**
   @function readbt 读入bt文件;
   @param $fp 文件指针
   @param $nowtype:当然的元数据类型
   @return Array 一个保存当前元数据集的数组
    */
    function readBt($fp,$nowtype="DICT")
    {
        $nowindex="";
        while(!feof($fp))
        {
            $char=(string)fread($fp,1);
            /**
            其实仔细研究一下,可能这里几个case的摆放位置,比如哪个在前哪个在后,对速度都是有影响的,不过咱们暂时不管它
            */
            switch($char)
            {
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9":
                case "0":
                {
                    $nowindex.=$char;
                    break;
                }
                case ":":
                {
                    $nowtype="STRING";
                    $string=fread($fp,intval($nowindex));
 
                    $VARS[]=$string;
                    $nowindex="";
                    $nowtype="";
                    break;
                }
                case "i":
                {
 
                    $nowtype="NUMBER";
                    break;
 
                }
                case "e":
                {
                    /**


                    e是一个编码结束的标志,要看当前是何种编码。如果是number,直接保存当前读入的一系统数组;如果是列表(list)或字典(dictionary),则返回数组。
                    */
 
                    switch ($nowtype)
                    {
                        case "NUMBER":
 
                            $VARS[]=intval($nowindex);
                            $nowindex="";
                            break;
                        case "LIST":
 
                            return $VARS;
                            break;
                        case "DICT":
 
                            return $VARS;
                            break;
                    }
 
                    break;
                }
                /**
                当开始一个列表或字典时,我为了让结果数组更清晰地显示目录关系,使用了递归。也可以不使用递归。
                */
                case "l":
                    {
                    $nowtype="LIST";
                    $VARS[]=readBt($fp,$nowtype);
                    break;
                    }
                case "d":
                {
 
                    $nowtype="DICT";
                    $VARS[]=readBt($fp,$nowtype);
                    break;
                }
 
            }
 
        }
        return $VARS;
    }
    fclose($fp);
 
 
?>

热点排行