Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение последних картинок 
:(
    Опции темы
wiihau
Дата 2.8.2010, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.7.2010

Репутация: нет
Всего: нет



Добрый день,

у меня стоит система видеонаблюдения, которая по движению отсылает по фтп фотографии на сайт. Имя файла - snapshotXXX.jpg, где XXX- индекс фотографии увеличивающийся на 1. Я хочу, чтобы на сайте отображались последние 6 снимков в таблице 2х3. При нажатии ссылки "назад" загружались предпоследние 6, то есть начиная с "последняя - 12". Как это можно сделать? Могли бы Вы разжевать как новичку досконально код.
Спасибо.
PM MAIL   Вверх
Hanut
Дата 4.8.2010, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.7.2010

Репутация: 1
Всего: 2



Судя по задаче, здесь можно обойтись PHP и не видно особой необходимости в использовании JavaScript. Попробуйте такой вариант, если он не подойдет, то можно будет его переделать.
Код

<?php

// Путь к файлу с картинками.
$set['path'] = '/img/';

// Картинок на странице.
$set['on_page'] = 6;

// Количество столбцов в таблице.
$set['cols'] = 3;

$set['p_prev'] = 0;
$set['p_next'] = 0;

// Чтение каталога и выборка файлов картинок в массив.
function get_files() {
    global $set;
    $aFile = array();
    $dir = $_SERVER['DOCUMENT_ROOT'] . $set['path'];
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if (is_file($dir . $file) && preg_match('/^snapshot(\d{3})\.jpg$/i', $file, $matches)) {
                $aFile[] = $matches[1];
            }
        }
        closedir($dh);

        rsort($aFile);
    }
    return $aFile;
}

// Формирование таблицы.
function table($aSub) {
    global $set;
    $tr = 1;
    print '<table><tbody>';
    if (isset($_GET['p']) && preg_match('/^\d+$/', $_GET['p'])) {
        $start = ($_GET['p'] - 1) * $set['on_page'];
        if ($_GET['p'] > 1) $set['p_prev'] = $_GET['p'] - 1;
    } else {
        $start = 0;
    }
    if ($start + $set['on_page'] < count($aSub)) $set['p_next'] = ceil($start / $set['on_page'] + 2);
    $stop = ($start + $set['on_page'] > count($aSub)) ? count($aSub) : $start + $set['on_page'];
    for ($i = $start; $i < $stop; $i++) {
        if ($tr == 1) print '<tr>';
        print '<td><img src="/img/snapshot' . $aSub[$i] . '.jpg" alt="" /></td>';
        if ($tr++ >= $set['cols']) {
            print '</tr>';
            $tr = 1;
        }
    }
    if ($tr > 1) print '<td colspan="' . $tr . '"></td></tr>';
    print '</tbody></table>';
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>

<?php

if($aSub = get_files()) {
    table($aSub);
}
if ($set['p_prev']) print '<a href="?p=' . $set['p_prev'] . '">Пред.</a>' . "\n";
if ($set['p_next']) print '<a href="?p=' . $set['p_next'] . '">След.</a>' . "\n";
?>

</body>
</html>


PM MAIL   Вверх
wiihau
Дата 27.10.2010, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.7.2010

Репутация: нет
Всего: нет



Спасибо! Все отлично работает. Пришлось отложить задачу, но снова вернулся к ее выполнению!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0711 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.