2011-07-09 2 views
0

Кто-нибудь знает об magnet-URI -parser for PHP? Чтобы проверить его или, возможно, извлечь из него какую-то информацию?Библиотека ссылок на магниты для PHP

+0

чем проблема извлечения некоторые данные от магнита-URI? Пожалуйста, объясните, что вы сделали до сих пор, и в какую проблему вы столкнулись. – hakre

+0

Вероятно, связано: [Проблема с созданием хэш-файла торрент-файла] (http://stackoverflow.com/questions/6527357/problem-creating-info-hash-of-torrent-file) – hakre

ответ

2

В случае, если вы ищете что-то вроде этого:

Magnet URI: magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C (valid) 

    Display Name .... (dn): 
    eXact Length .... (xl): 
    eXact Topic ..... (xt): urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C 
    Acceptable Source (as): 
    eXact Source .... (xs): 
    Keyword Topic ... (kt): 
    Manifest Topic .. (mt): 
    address TRacker . (tr): 

take a look at the Demo.

Нельзя сказать, если это соответствует вашей потребности, ваш вопрос был неспецифическим. Поэтому оставьте комментарий.

+0

Я знаю, как извлечь имя/пар, но я бы подумал, что существуют более сложные правила проверки. А также, как я могу разрешить точную тему имени файла и размера? – Wieger

+0

Никакие магнитные ссылки не являются простыми, для URI нет более сложных правил проверки. Тем не менее вы можете проверить данные, которые могут быть извлечены из этого URI. Тем не менее, это домен, собственный для каждого типа данных. Например. проверка ключевых слов зависит от того, как вы хотели бы их проверить. Точная тема не является именем файла и не охватывает размер, поэтому вы не можете найти имя файла или размер. Вы можете искать поисковые службы поиска p2p для самого URI. Но это абсолютно не связано с анализом и проверкой URI, о котором вы просили. – hakre

2

Если вам нужны только поля, вот быстрый и грязный один лайнер:

$link = 'magnet:?xt=urn:btih:0eb69459a28b08400c5f05bad3e63235b9853021&dn=Splinter.Cell.Blacklist-RELOADED&tr=udp%3A%2F%2Ftracker.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.istole.it%3A6969&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Fopen.demonii.com%3A1337'; 

parse_str(str_replace('tr=','tr[]=',parse_url($link,PHP_URL_QUERY)),$query); 

print_r($query); 

Если выход:

Array 
(
    [xt] => urn:btih:0eb69459a28b08400c5f05bad3e63235b9853021 
    [dn] => Splinter.Cell.Blacklist-RELOADED 
    [tr] => Array 
     (
      [0] => udp://tracker.com:80 
      [1] => udp://tracker.publicbt.com:80 
      [2] => udp://tracker.istole.it:6969 
      [3] => udp://tracker.ccc.de:80 
      [4] => udp://open.demonii.com:1337 
     ) 
) 
+0

Отличная работа! Только то, что мне нужно! Спасибо! –