Torrent Dosyaları Bilgi Ayrıştırma Sınıfı

PHP
82 lines
<?php
class TorrentBilgi{
var $indeks;
var $kaynak;
var $finaldizi;
function islemler() {
$karakter = $this->kaynak[$this->indeks];
if (is_numeric($karakter)) return $this->islemler_metin();
if ($karakter == 'i') {
++$this->indeks;
return $this->islemler_sayi();
}
if ($karakter=='l') {
++$this->indeks;
return $this->islemler_liste();
}
if ($karakter=='d') {
++$this->indeks;
return $this->islemler_sozluk();
}
die("ANA İŞLEM: BEKLENMEYEN KARAKTER (pozisyon: $this->indeks): ".$karakter);
}
function islemler_sayi() {
$mevcut_karakter='';
$numara = "";
while (($mevcut_karakter = $this->kaynak[$this->indeks]) != 'e') {
++$this->indeks;
$numara .= $mevcut_karakter;
}
++$this->indeks;
return (int) $numara;
}
function islemler_metin(){
$boyut ="";
while($this->kaynak[$this->indeks] != ':') {
$boyut .= $this->kaynak[$this->indeks];
++$this->indeks;
}
$i = ++$this->indeks;
$this->indeks += $boyut;
$x= substr($this->kaynak, $i, $boyut);
return $x;
}
function islemler_liste() {
$dondur_liste = array();
while ($this->kaynak[$this->indeks] != 'e') {
$this->indeks1 = $this->indeks;
$dondur_liste[] = $this->islemler();
if ($this->indeks1 == $this->indeks) die("LİSTEDE SONSUZ DÖNGÜ");
}
++$this->indeks;
return $dondur_liste;
}
function islemler_sozluk() {
$dondur_sozluk = array();
while ($this->kaynak[$this->indeks] != 'e') {
$this->indeks1 = $this->indeks;
$dondur_sozluk[$this->islemler_metin()] = $this->islemler();
if ($this->indeks1 == $this->indeks) die("SÖZLÜKTE SONSUZ DÖNGÜ");
}
++$this->indeks;
return $dondur_sozluk;
}
function ayristir($dosyaisim) {
$this->kaynak = file_get_contents($dosyaisim);
$this->indeks = 0;
$dosyaboyut = strlen($this->kaynak);
$this->finaldizi=array();
while($this->indeks<$dosyaboyut) {
$this->indeks1 = $this->indeks;
$islemler=$this->islemler();
unset($islemler["info"]["pieces"]);
$this->finaldizi[] =$islemler;
if ($this->indeks1 == $this->indeks) die("KÖK LİSTESİNDE SONSUZ DÖNGÜ");
}
$this->kaynak = '';
return $this->finaldizi;
}
}
$x = new TorrentBilgi();
print_r($x->ayristir("http://www.ulusanyazilim.com/wp-content/uploads/download-manager-files/uTorrent_3.5.3.44396.exe.torrent"));
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Çıktısı

Markdown
18 lines
Array
(
[0] => Array
(
[announce] => http://tracker.zamunda.net/announce.php?passkey=fa20455fa921c755acba1144f60cc2f0
[created by] => uTorrent/3.5.3
[creation date] => 1523690447
[encoding] => UTF-8
[info] => Array
(
[length] => 58602944
[name] => uTorrent_3.5.3.44396.exe
[piece length] => 65536
)
)
)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

Sizin Değerli Görüşlerinize İhtiyacımız Var.