Артём Мáлков

Bencode – PHP-класс для простого получения основной информации о торрент-файле

19 янв2 комм

Торренты в прямом смысле перевернули весь принцип скачивания файлов в сети Интернет. Много лет назад мы часами ждали окончания загрузки того или иного файла, а при прерывании загрузки по техническим причинам проделывали все шаги для получения файла вновь.

На данный момент существует большое количество тематических сайтов, где вы без труда можете скачать музыку, фильмы, различные обучающие материалы и прочее, как раз используя этот протокол. Чтобы повысить доверие пользователей, такие ресурсы предоставляют максимально подробную информацию о торрент-файлах на своих страницах. О том, как получить эту информацию, сегодня и пойдет речь.

Для PHP существует прекрасный класс под названием «Bencode», который без особого труда позволяет извлечь основную информацию из торрент-файла. К этой информации относится размер раздачи, список (названия) файлов в раздаче, комментарии к раздаче, хеш-информация, количество частей в раздаче, приватность раздачи и список анонсеров. С помощью последних дополнительно вы можете узнать количество раздающих (seeder) и скачивающих (leech) устройств. Но об этом уже читайте в следующих наших статьях.

Итак, что нужно сделать, что бы получить информацию о файле?

1. Скачайте архив в конце статьи. Содержимое разархивируйте и закачайте на сайт удобным для вас способом.

2. Далее в вашем PHP-скрипте подключите скачанный ранее класс:

require "./bencoded.php";

Делать это желательно в самом верху файла. Не забывайте указать корректную ссылку до файла.

3. Далее вы вставляете следующий код:

$torrent = new Torrent("./файл.torrent"); // Ссылка до файла на сервере

$is_private = $torrent->is_private() ? "да" : "нет"; // Приватная ли раздача
$annonce = $torrent->announce(); // Анонсеры
$name = $torrent->name(); // Список файлов
$comment = $torrent->comment(); // Комментарии к раздаче
$piece_length = $torrent->piece_length(); // Количество частей в раздаче
$size = $torrent->size(2); // Размер раздачи
$hash_info = $torrent->hash_info(); // Хеш-информация

Не забываете в его первой строке указать ссылку до локального (того, что находится на вашем сайте) торрент-файла.

А далее вы просто выводите необходимую вам информацию в нужном месте скрипта, например, так:

echo "Размер раздачи: ".$size;

Все очень просто. Обратите внимание, что список анонсеров хранится в массиве, это значит, что через простое «echo» вам его не вывести. Используйте foreach или индексы массива.

Файл
Размер
Ссылка
bencoded.zip
7,71 Kb
Скачать с сервера
Рекомендуем к просмотру
Скачивание файлов по ссылке на JavaScript
Модули и скрипты
cURL как альтернатива функции file_get_contents в PHP
Модули и скрипты
Скрываем только дочерние пункты определенного ресурса в pdoMenu в MODX Revo
Посты
2
комментария
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    41
      •  Проверенный
    23 июл в 22:37

    Недавно в поисках решения курсов валют на сайте, нашел целый пакет php скриптов cbrfservice. Там говорилось, что это php класс, который возвращает курсы валют с сервиса ЦБ России. Как бы не пытался, я не смог его использовать. В итоге понял, что это для программистов.

    Тогда и первый раз, я узнал о php классах. Но еще до конца не понял, что это такое.

    • 1
    1
      •  Проверенный
    10 ноя в 20:27

    Здраствуйте Артем, я не сильно разбираюсь в коде, не могли бы вы подсказать как в DLE 14.1 настроить вывод информации "размер раздачи и список (названия) файлов в раздаче" в полной новости?

    Заранее благодарен!

Подняться наверх
«Pandoge» - помощник вебмастера