1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Обновление своего скрипта

Тема в разделе "Web Coding", создана пользователем ar4ik, 5 дек 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Сейчас заканчиваю работу над скриптом, который будет работать на десятках сайтов(на каждом свой и со своими настройками). Естественно скрипт со временем будет изменятся, обновляться. Так вот, как лучше подойти к проблеме обновления скрипта, чтоб не копировать его всегда по новой на все сайты?
     
  2. Zeratul

    Zeratul Создатель

    Регистр.:
    17 мар 2006
    Сообщения:
    1.322
    Симпатии:
    3.855
    Вариант.

    Вообще вариантов как именно скрипт

    Все просто, если у тебя весь скрипт находится в одном файле. :)
    Тогда вариант от меня:
    1. - Пишем тело скрипта(алгоритм) в папку с правами 777.
    2. - Делаем алго для загрузки скрипта, пример ниже.
    3. - Для удобства можно добавить к загрузчику проверку версий, т.к качать весь скрипт постоянно. А только при условии что версия изменилась.

    Код:
    PHP:
    <?php
        $_CONF 
    = array (
            
    'sfile'        =>    'tmp.inc',                            # Имя файла со скриптом
            
    'vfile'        =>    'ver.txt',                            # Файл с текушей    версией
            
    'check'        =>    'http://localhost/updt/vcheck.php',    # Где будем брать версию для проверки
            
    'update'    =>    'http://localhost/updt/last.txt',    # Откуда качаем новую версию
            
    'ctime'        =>    86400                                # Через сколько времени проверяем обновление. (Один день)
        
    );

        if (
    filemtime($_CONF['sfile']) < (time()-$_CONF['ctime'])) # Сверяем время изменения файла с текущим
        
    {
            
    $v1 file_get_contents($_CONF['vfile']);
            
    $v2 file_get_contents($_CONF['check']);
            
            if (
    $v1 != $v2)
            {
                
    $new file_get_contents($_CONF['update']);
                
    file_put_contents($_CONF['vfile'], $v2);
                
    file_put_contents($_CONF['sfile'] ,$new);
            }
            else 
    # Версия скрипта не изменилась, обновляем время изменения файла нп текущее
                
    touch($_CONF['sfile']);
        }
        
        include 
    $_CONF['sfile'];
    ?>
    Набросал на коленке, не тестил, но думаю идея будет понятна. :)
     
    ar4ik нравится это.
  3. admLoki

    admLoki генератор случайного PHP

    Регистр.:
    14 сен 2006
    Сообщения:
    481
    Симпатии:
    93
    Зер, ты как всегда с креативом :) .
    Я юзать Hdiff или patch что мешает ? :) .
     
  4. Zeratul

    Zeratul Создатель

    Регистр.:
    17 мар 2006
    Сообщения:
    1.322
    Симпатии:
    3.855
    Ну просто я делал именно так.. Может это и не совсем верно :)
     
  5. El_Magnifico

    El_Magnifico Команданте

    Регистр.:
    1 сен 2006
    Сообщения:
    653
    Симпатии:
    487
    а может проще для фтп скрипт написать??
     
  6. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Не понял, что ты имеешь ввиду. Поясни.
     
  7. Zeratul

    Zeratul Создатель

    Регистр.:
    17 мар 2006
    Сообщения:
    1.322
    Симпатии:
    3.855
    Он имеет ввиду скрипт который будет заходить на ftp и обновлять(перезаливать) скрипт.
    Такое можно реализовать на основе phpwebftp.
     
  8. ar4ik

    ar4ik

    Регистр.:
    26 ноя 2007
    Сообщения:
    331
    Симпатии:
    95
    Этот способ не подойдет, т.к. не всегда будет возможность (на клиентских сайтах) подключения по фтп.
     
  9. scan

    scan

    Регистр.:
    1 апр 2006
    Сообщения:
    174
    Симпатии:
    72
    ну если в скрипте модульная структура,то что мешает генерить xml с версиями модулей,и при апдейте забирать измененные файлы(модули) ещё тут можно пойти по принципу некоторых кмс и для каждого модуля писать свой мини инсталятор

    если же все нет,то имхо оптимальнее просто давать юзеру скажем в админке специально сгенеренный линк где он может скачать последнюю версию и обновлять ручками,имхо в безмодульной структуре это самое оптимальное

    p.s на самом деле за примерами далеко и ходить не надо,из того что могу вспомнить с такой фичей это Newsgrabber,Bitrix,Sbuiler
    в ньюсграббере к примеру достаточно интересный подход юзается,может это и вам подойдет(файл updates.php)
     
    ar4ik нравится это.
  10. genarator2003

    genarator2003 Постоялец

    Регистр.:
    23 авг 2007
    Сообщения:
    113
    Симпатии:
    8
    Если скрипт не оч большой и много писать лень)) я бы тупо подключал основной функционал requre`ом с другого хоста.
    тогда всё будет выглядеть примерно так
    <? какой-то php код
    require_once ("http://host/patch/".$file)
    ?>

    минус в том что не на всех хостингах разрешают подключение внешних файлов

    Вообще у Зера вариант оч хороший вариант, но насколько я понимаю тогда нужно будет выставить файлам разрешение на чтение, а в этом случае их сможет достать бот гугла(если я ошибаюсь поправьте меня) и проиндексировать что не оч безопасно.
    Как с этим бороться? Шифрование исключаем.


    ЗЫ код ещё можно пихать в базу но эт как-то извращённо :D
     
Статус темы:
Закрыта.