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

<?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"));
?>

Çıktısı

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
                )

        )

)