АРМАДА
PHP: выдача ссылки на скачку по очереди всех картинок поразу
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Сб Окт 15, 2011 4:00 pmДобавить в избранноеОтветить с цитатой
Всем привет!
Подскажите, как сделать такое:
1. Есть php-страница, на которой одна-единственная ссылка:
Код:
<?php
$link='001';
echo '<a href='http://'.$_SERVER['HTTP_HOST'].'/images/'.$link.'jpg>avatarka</a>';
?>


2. Есть папка images, где лежит список картинок с именами от 001.jpg до 999.jpg.

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

Заранее спасибо! :thup: Drinks or Beer
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Сб Окт 15, 2011 5:38 pmОтветить с цитатой
Ссылка должна вести на файл download.php

в download.php вставляешь

Код:
<?php

$current_img = file_get_contents('counter.txt');

$images = scandir('images');

file_put_contents('counter.txt', $current_img+1);

header('Content-disposition: attachment; filename="avatar.jpg"');

echo file_get_contents('images/' . $images[$current_img+1]);



в counter.txt - номер изображения, которое будет скачено, сперва сам вставляешь
1
дальше это значение будет увеличиться само после каждого запроса к download.php

Yabuti
V.I.P.
Зарегистрирован: 28.11.2008
Сообщений: 16263
Contest (Сумма: 2)
Обратиться по нику
# Добавлено:Сб Окт 15, 2011 7:32 pmОтветить с цитатой
Codd, УРА, работает!
Супер! Огромное спасибо! :thup: Drinks or Beer Yahoo!
Ксен ВПС и выделенные серверы от PQCService.net с бесплатным администрированием в 7 локациях, icq: 87244588
--

Editeur
Опытный
Зарегистрирован: 19.06.2010
Сообщений: 382
Обратиться по нику
# Добавлено:Вс Окт 16, 2011 1:40 amОтветить с цитатой
Цитата:

$current_img = file_get_contents('counter.txt');

$images = scandir('images');

file_put_contents('counter.txt', $current_img+1);


потоконебезопасно. как вариант использовать flock http://php.net/manual/en/function.flock.php

Цитата:
echo file_get_contents('images/' . $images[$current_img+1]);


через директивы X-Accel-Redirect (Nginx) / X-Sendfile (Apache) будет эффективнее
типа как здесь http://www.jasny.net/articles/how-i-php-x-sendfile/
BossTDS - Система распределения траффика | demo BossTDS
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры