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