ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して BT シードを開いてサーバーにダウンロードできますか?

PHP を使用して BT シードを開いてサーバーにダウンロードできますか?

WBOY
WBOYオリジナル
2016-06-23 14:18:08996ブラウズ

BT ファイルをサーバーにアップロードし、PHP を使用して BT シード ファイルを開き、PHP を使用してサーバーにダウンロードしたいと考えています。1 つはハード ディスクの容量を節約するため、もう 1 つは高速にするためです。

誰が知っていますか?コードを投稿してください


ディスカッション (解決策) に返信

大きなファイルは許可されませんが、小さなファイルは問題ありません。
長い時間が経過すると、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);  ?>

+1
大きなファイルはダウンロードできません。小さなファイルは大丈夫です。
時間が経つと、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);  ?>

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。