Счётчик скачиваний файлов на PHP

Данный скрипт нашёл в сети. Я всего лишь расскажу как он работает. Сам счетчик - это PHP скрипт. Поэтому он будет работать только на хостинге с поддержкой PHP.
Для создания счётчика создаём файл: 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). Таким же образом добавляем третий файл, четвёртый, пятый, и т.д.
Идея хорошая, и обязательно пригодится на моём сайте! Но, есть одна проблема, 2, 3 файла для скачивания, кода много не будет, а если файлов больше 100, кода будет много. Легко запутаться. Это ведь PHP тут можно сделать всего один обработчик, который будет обрабатывать и 100 и 1000 файлов для скачивания. Верно? Как его поправить для такого?
Выносливый, код счетчика, тут, исключительно для примера, показать, как работает. Я не рекомендую его использовать на рабочем сайте. Лучше использовать БД для хранения записей: количества скачиваний и пути к файлам для скачивания.

Но, если очень хочется использовать этот код, то используйте значение $_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.
На счёт хранения записей в базе согласен, оно лучше. Но, в качестве тренировки стоит повозиться с этим кодом!
Slash, спасибо за пример, буду пытаться сделать обработчик, один на все файлы.