10.07.2017 08:51:35 am
Данный скрипт нашёл в сети. Я всего лишь расскажу как он работает. Сам счетчик - это PHP скрипт. Поэтому он будет работать только на хостинге с поддержкой PHP.
Для создания счётчика создаём файл: counter.php, с содержимым:
Где третья строчка
указывает путь к файлу, который нужно скачать, четвёртая строчка
указывает полный адрес относительно файлу counter.php файла в котором будет храниться статистика скаченного файла, в данном случаи это: book1.txt
Файл counter.php помещаем в корень сайта, файл: book1.txt (пустой) поместим в папку counter. В php документе пишем ссылку такого вида:
При нажатии на эту ссылку зачтётся клик, в файле book1.txt на одну единицу статистике станет больше, скрипт выполнит запрос файла и начнётся скачивание файла на компьютер пользователя.
Для отображения статистики закачек, в тот же документ вставляем вот этот код:
Для более актуального вида, статистику можно вставить рядом с ссылкой загрузки, в духе:
Увеличиваем количество файлов для скачивания:
В файл: counter.php дописываем:
Должно получиться так:
В папку counter заливаем файлик book2.txt (пустой), добавляем ссылку:
и выводим статистику:
То есть делаем всё то же самое, только меняем цифру один (1) на два (2). Таким же образом добавляем третий файл, четвёртый, пятый, и т.д.
Для создания счётчика создаём файл: counter.php, с содержимым:
<?php
if ($_GET['book'] == 1)
{
header('location: http://danfa.net/file.zip');
$file = fopen('counter/book1.txt', 'a+');
flock($file, LOCK_EX);
$count = fread($file, 100);
$count++;
ftruncate($file, 0);
fwrite($file, $count);
flock($file, LOCK_UN);
fclose($file);
}
Где третья строчка
header('location: http://danfa.net/file.zip');
указывает путь к файлу, который нужно скачать, четвёртая строчка
$file = fopen('book1.txt', 'a+');
указывает полный адрес относительно файлу counter.php файла в котором будет храниться статистика скаченного файла, в данном случаи это: book1.txt
Файл counter.php помещаем в корень сайта, файл: book1.txt (пустой) поместим в папку counter. В php документе пишем ссылку такого вида:
<a href="http://danfa.net/counter.php?book=1">Скачать архив</a>
При нажатии на эту ссылку зачтётся клик, в файле book1.txt на одну единицу статистике станет больше, скрипт выполнит запрос файла и начнётся скачивание файла на компьютер пользователя.
Для отображения статистики закачек, в тот же документ вставляем вот этот код:
<?php include('counter/book1.txt'); ?>
Для более актуального вида, статистику можно вставить рядом с ссылкой загрузки, в духе:
Название: <b>PHP скрипт счётчика скачиваний</b><br />
Размер файла: 12.06 kb<br />
Скачали: <?php include('counter/book1.txt');?> раз<br />
<a href="http://danfa.net/counter.php?book=1">Скачать архив</a>
Увеличиваем количество файлов для скачивания:
В файл: counter.php дописываем:
if ($_GET['book'] == 2)
{
header('location: http://danfa.net/file_2.zip');
$file = fopen('counter/book2.txt', 'a+');
flock($file, LOCK_EX);
$count = fread($file, 100);
$count++;
ftruncate($file, 0);
fwrite($file, $count);
flock($file, LOCK_UN);
fclose($file);
}
Должно получиться так:
<?php
if ($_GET['book'] == 1)
{
header('location: http://danfa.net/file.zip');
$file = fopen('counter/book1.txt', 'a+');
flock($file, LOCK_EX);
$count = fread($file, 100);
$count++;
ftruncate($file, 0);
fwrite($file, $count);
flock($file, LOCK_UN);
fclose($file);
}
if ($_GET['book'] == 2)
{
header('location: http://danfa.net/file_2.zip');
$file = fopen('counter/book2.txt', 'a+');
flock($file, LOCK_EX);
$count = fread($file, 100);
$count++;
ftruncate($file, 0);
fwrite($file, $count);
flock($file, LOCK_UN);
fclose($file);
}
В папку counter заливаем файлик book2.txt (пустой), добавляем ссылку:
<a href="http://danfa.net/counter.php?book=2">Скачать архив</a>
и выводим статистику:
<?php include('counter/book2.txt');?>
То есть делаем всё то же самое, только меняем цифру один (1) на два (2). Таким же образом добавляем третий файл, четвёртый, пятый, и т.д.
- Жалоба
- 1
23.04.2023 07:32:32 pm
Идея хорошая, и обязательно пригодится на моём сайте! Но, есть одна проблема, 2, 3 файла для скачивания, кода много не будет, а если файлов больше 100, кода будет много. Легко запутаться. Это ведь PHP тут можно сделать всего один обработчик, который будет обрабатывать и 100 и 1000 файлов для скачивания. Верно? Как его поправить для такого?
23.04.2023 08:07:53 pm
Выносливый, код счетчика, тут, исключительно для примера, показать, как работает. Я не рекомендую его использовать на рабочем сайте. Лучше использовать БД для хранения записей: количества скачиваний и пути к файлам для скачивания.
Но, если очень хочется использовать этот код, то используйте значение
Так Вам не придется плодить один и тот же код.
Работу кода не проверял, к тому же нуждается в допилке, но, думаю, суть ясна.
Вот еще одна доработка счетчика: Тема: Счётчик скачиваний на PHP и JavaScript.
Но, если очень хочется использовать этот код, то используйте значение
$_GET['book']
для нужного файла. Например, так:if (isset($_GET['book']) && !empty($_GET['book']))
{
$book = $_GET['book'];
header('location: http://danfa.net/file' . $book . '.zip');
$file = fopen('counter/book' . $book . '.txt', 'a+');
flock($file, LOCK_EX);
$count = fread($file, 100);
$count++;
ftruncate($file, 0);
fwrite($file, $count);
flock($file, LOCK_UN);
fclose($file);
}
Так Вам не придется плодить один и тот же код.
Работу кода не проверял, к тому же нуждается в допилке, но, думаю, суть ясна.
Вот еще одна доработка счетчика: Тема: Счётчик скачиваний на PHP и JavaScript.
24.04.2023 06:51:30 am
На счёт хранения записей в базе согласен, оно лучше. Но, в качестве тренировки стоит повозиться с этим кодом!
Slash, спасибо за пример, буду пытаться сделать обработчик, один на все файлы.
Slash, спасибо за пример, буду пытаться сделать обработчик, один на все файлы.