Создание символической ссылки на файл

<?php
/**
 * Создание символической ссылки на файл
 * автор: Nc_Soft
 * 03.01.09
 */

/*
Имеется некоторая защищенная директория (deny from all), в которой лежат файлы
1.mp3
2.mp3
3.mp3 итп
Задача выдать эти файлы с произвольным именем юзеру по запросу
*/

//защищенная директория
$private_dir=$_SERVER['DOCUMENT_ROOT'].'/private';

//создадим доступную директорию public с правами 777
$public_dir=$_SERVER['DOCUMENT_ROOT'].'/public';

/*в директорию public будем класть символические ссылки.
Обращаю внимание, что символические ссылки ничего не весят.
Допустим, мы хотим выдать ссылку на файл /private/1.mp3 в виде
/public/mega_hit_track.mp3
*/

//создаем символическую ссылку
if (symlink($private_dir.'/1.mp3', $public_dir.'/mega_hit_track.mp3')) {
	//выдаем ссылку юзеру
	echo '<a href="http://'.$_SERVER['HTTP_HOST'].'public/mega_hit_track.mp3">скачать</a>';
}
else {
	echo 'ошибка генерации ссылки';
}

/*в папке public создалась символическая ссылка 
mega_hit_track.mp3
обращение http://'.$_SERVER['HTTP_HOST'].'public/mega_hit_track.mp3
приведет к скачиванию статичного файла /private/1.mp3 из папки 

Преимущества символических ссылок:
-ссылки можно генерировать на лету
-можно сделать несколько разных ссылок на один и тот же файл
-с символическими ссылками можно работать как с файлами и каталогами (удаление/перемешение/переименование)

Недостатки:
-работает только в Linux
*/

?>