亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php讀取torrent種子文件內容的方法(測試可用)

2024-05-04 23:45:25
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php讀取torrent種子文件內容的方法,可實現讀取并顯示torrent種子文件內容的功能,簡單實用,需要的朋友可以參考下
 

本文實例講述了php讀取torrent種子文件內容的方法。分享給大家供大家參考,具體如下:

<?php/** * Class xBEncoder * Author: Angus.Fenying * Version: 0.1 * Date:  2014-06-03 * *  This class helps stringify or parse BENC *  codes. * * All Copyrights 2007 - 2014 Fenying Studio Reserved. */class xBEncoder{  const READY = 0;  const READ_STR = 1;  const READ_DICT = 2;  const READ_LIST = 3;  const READ_INT = 4;  const READ_KEY = 5;  public $y;  protected $z, $m, $n;  protected $stat;  protected $stack;  /**   * This method saves the status of current   * encode/decode work.   */  protected function push($newY, $newStat)  {    array_push($this->stack, array($this->y, $this->z, $this->m, $this->n, $this->stat));    list($this->y, $this->z, $this->m, $this->n, $this->stat) = array($newY, 0, 0, 0, $newStat);  }  /**   * This method restore the saved status of current   * encode/decode work.   */  protected function pop()  {    $t = array_pop($this->stack);    if ($t) {      if ($t[4] == self::READ_DICT) {        $t[0]->{$t[1]} = $this->y;        $t[1] = 0;      } elseif ($t[4] == self::READ_LIST)        $t[0][] = $this->y;      list($this->y, $this->z, $this->m, $this->n, $this->stat) = $t;    }  }  /**   * This method initializes the status of work.   * YOU SHOULD CALL THIS METHOD BEFORE EVERYTHING.   */  public function init()  {    $this->stat = self::READY;    $this->stack = array();    $this->z = $this->m = $this->n = 0;  }  /**   * This method decode $s($l as length).   * You can get $obj->y as the result.   */  public function decode($s, $l)  {    $this->y = 0;    for ($i = 0; $i < $l; ++$i) {      switch ($this->stat) {        case self::READY:          if ($s[$i] == 'd') {            $this->y = new xBDict();            $this->stat = self::READ_DICT;          } elseif ($s[$i] == 'l') {            $this->y = array();            $this->stat = self::READ_LIST;          }          break;        case self::READ_INT:          if ($s[$i] == 'e') {            $this->y->val = substr($s, $this->m, $i - $this->m);            $this->pop();          }          break;        case self::READ_STR:          if (xBInt::isNum($s[$i]))            continue;          if ($s[$i] = ':') {            $this->z = substr($s, $this->m, $i - $this->m);            $this->y = substr($s, $i + 1, $this->z + 0);            $i += $this->z;            $this->pop();          }          break;        case self::READ_KEY:          if (xBInt::isNum($s[$i]))            continue;          if ($s[$i] = ':') {            $this->n = substr($s, $this->m, $i - $this->m);            $this->z = substr($s, $i + 1, $this->n + 0);            $i += $this->n;            $this->stat = self::READ_DICT;          }          break;        case self::READ_DICT:          if ($s[$i] == 'e') {            $this->pop();            break;          } elseif (!$this->z) {            $this->m = $i;            $this->stat = self::READ_KEY;            break;          }        case self::READ_LIST:          switch ($s[$i]) {            case 'e':              $this->pop();              break;            case 'd':              $this->push(new xBDict(), self::READ_DICT);              break;            case 'i':              $this->push(new xBInt(), self::READ_INT);              $this->m = $i + 1;              break;            case 'l':              $this->push(array(), self::READ_LIST);              break;            default:              if (xBInt::isNum($s[$i])) {                $this->push('', self::READ_STR);                $this->m = $i;              }          }          break;      }    }    $rtn = empty($this->stack);    $this->init();    return $rtn;  }  /**   * This method encode $obj->y into BEncode.   */  public function encode()  {    return $this->_encDo($this->y);  }  protected function _encStr($str)  {    return strlen($str) . ':' . $str;  }  protected function _encDo($o)  {    if (is_string($o))      return $this->_encStr($o);    if ($o instanceof xBInt)      return 'i' . $o->val . 'e';    if ($o instanceof xBDict) {      $r = 'd';      foreach ($o as $k => $c)        $r .= $this->_encStr($k) . $this->_encDo($c);      return $r . 'e';    }    if (is_array($o)) {      $r = 'l';      foreach ($o as $c)        $r .= $this->_encDo($c);      return $r . 'e';    }  }}class xBDict{}class xBInt{  public $val;  public function __construct($val = 0)  {    $this->val = $val;  }  public static function isNum($chr)  {    $chr = ord($chr);    if ($chr <= 57 && $chr >= 48)      return true;    return false;  }}//使用實例$s = file_get_contents("test.torrent");$bc = new xBEncoder();$bc->init();$bc->decode($s, strlen($s));var_dump($bc->y);
 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品啪在线观看麻豆免费| 久久夜色精品亚洲噜噜国产mv| 97婷婷涩涩精品一区| 久久视频在线免费观看| 国产精品中文在线| 国产成人欧美在线观看| 中文字幕亚洲色图| 久久久久久久久久久av| 国产精品视频自拍| 亚洲iv一区二区三区| 5566日本婷婷色中文字幕97| 日本伊人精品一区二区三区介绍| 欧美精品亚州精品| 国产精品久久久久久久av大片| 91欧美精品成人综合在线观看| 91a在线视频| 久久777国产线看观看精品| 欧美成人午夜剧场免费观看| 亚洲高清在线观看| 97热精品视频官网| 国产精品自产拍高潮在线观看| 中文字幕九色91在线| 欧美自拍视频在线观看| 91免费福利视频| 8x拔播拔播x8国产精品| 97久久精品在线| 精品久久久免费| 亚洲免费一级电影| 色av吧综合网| 国产精品久久久久久久久久小说| 欧美视频中文字幕在线| 亚洲欧美日本精品| 日韩av免费在线观看| 国产成人精品一区二区在线| 欧美福利视频网站| 亚洲色图美腿丝袜| 美女999久久久精品视频| 精品国产一区二区三区久久狼5月| 日韩av免费看网站| 伊人伊人伊人久久| 欧美另类69精品久久久久9999| 91精品视频网站| 日韩中文字幕在线看| 欧美极品欧美精品欧美视频| 国内精品久久久久| 亚洲综合中文字幕在线| 欧美中文在线视频| 成人黄色大片在线免费观看| 92看片淫黄大片欧美看国产片| 亚洲第五色综合网| 国产精品视频导航| 国产一区二区在线免费| 美女av一区二区三区| 日韩美女免费线视频| 欧美激情啊啊啊| 久久久在线观看| 日韩精品视频在线观看免费| 欧美性xxxx18| 菠萝蜜影院一区二区免费| 亚洲女在线观看| 欧美另类暴力丝袜| 欧美成人精品一区二区| 欧美体内谢she精2性欧美| 国产成人亚洲综合青青| 日本免费在线精品| 日韩成人在线视频网站| 色黄久久久久久| 97色在线视频观看| 日韩在线中文视频| 欧美一区二区三区……| 国产精品中文久久久久久久| 91免费人成网站在线观看18| 日本精品在线视频| 亚洲欧美日韩综合| 久久久久久久久中文字幕| 精品国产999| 中文字幕视频一区二区在线有码| 超碰91人人草人人干| 欧美夜福利tv在线| 日韩av免费看网站| 亚洲精品成人av| 国产日韩在线免费| 久热99视频在线观看| 国产精品91在线观看| 国产精品va在线播放| 国产中文日韩欧美| 欧洲成人午夜免费大片| 久久精品视频导航| 亚洲三级黄色在线观看| 久色乳综合思思在线视频| 久久九九国产精品怡红院| 性欧美xxxx交| 精品成人69xx.xyz| 按摩亚洲人久久| 尤物精品国产第一福利三区| 亚洲精品第一国产综合精品| 亚洲自拍小视频免费观看| 亚洲欧美日韩精品久久| 91精品久久久久久久久青青| 日韩欧亚中文在线| 国产精品亚洲第一区| 日本免费一区二区三区视频观看| 欧美美女15p| 国产精品黄视频| 国产精品视频资源| 成人a级免费视频| 欧美日韩国产一区二区| 久久躁日日躁aaaaxxxx| 成人网址在线观看| 国产精品综合网站| 日韩美女在线播放| 亚洲品质视频自拍网| 色一情一乱一区二区| 日韩中文字幕av| 国产精品视频不卡| 亚洲片国产一区一级在线观看| 中文字幕亚洲无线码a| 欧美日韩免费看| 国产日韩欧美成人| 国产一区二区欧美日韩| 青草热久免费精品视频| 久久成人一区二区| 中文字幕av一区二区三区谷原希美| 91在线国产电影| 亚洲理论在线a中文字幕| 亚洲精选中文字幕| 国产视频精品一区二区三区| 日韩欧美黄色动漫| 97超碰蝌蚪网人人做人人爽| 亚洲成人精品视频| 色噜噜狠狠狠综合曰曰曰88av| 欧美高清理论片| 精品小视频在线| 日韩精品在线视频美女| 国产精品视频yy9099| 91久久中文字幕| 日韩三级影视基地| 热久久这里只有精品| 中文字幕亚洲色图| 亚洲免费视频一区二区| 日韩av在线免费观看一区| 在线观看精品自拍私拍| 在线观看欧美成人| 国产精品入口夜色视频大尺度| 热久久这里只有精品| 91香蕉嫩草神马影院在线观看| 日韩精品免费一线在线观看| 欧美在线一区二区三区四| 国产精品揄拍一区二区| 午夜精品一区二区三区av| 最好看的2019年中文视频| 亚洲欧美在线免费| 国产日韩欧美另类| 久久久国产一区二区三区| 欧美色另类天堂2015| 久久免费福利视频| 久久成人国产精品| 国产精品久久一| 136fldh精品导航福利| 日韩电影免费观看中文字幕| 韩国三级电影久久久久久| 91沈先生在线观看| 亚洲欧洲av一区二区| 亚洲天堂av女优|