• Как распаковать zip-архив с заменой файлов с помощью PHP?

    @NewMax
    Когда-то давно делал так (с проверкой существования нужных файлов в архиве):
    //передается путь к zip архиву
    public function getData($filename)  {
    $zip = new \ZipArchive;
    $res = $zip->open($filename);
    if ($res === true) {
      $msg = '';
      $fail = false;
      if (!$zip->getFromName('1.txt')) {
         $fail = true;
         $msg .= 'В архиве не найден файл 1.txt. ';
       }
       if (!$zip->getFromName('2.txt')) {
             $fail = true;
             $msg .= 'В архиве не найден файл 2.txt. ';
        }
        if (!$zip->getFromName('3.txt')) {
              $fail = true;
              $msg .= 'В архиве не найден файл 3.txt. ';
        }
        if (!$zip->getFromName('4.txt'))
        {
                    $fail = true;
                    $msg .= 'В архиве не найден файл 4.txt. ';
        }
        if ($fail) {
             return $ms;
        }
        $zip->extractTo(__DIR__.'/../../../../web/uploads/DBfiles/res');
        $zip->close();
        return 'Файлы успешно распакованы';
       }
       return 'Не удалось открыть архив';
    }

    И старые файлы успешно заменяются.
    Ответ написан
    Комментировать
  • JQuery: Ajax. Как реализовать передачу нескольких параметров в data?

    @NewMax
    Итог вышесказанного:
    $('form').submit(function(){
        // сериализация всех полей формы
        var data = $(this).serialize();
        // ручное добавление в виде массива
        var data = {name:'name', 'email':email};
        // ручное добавление для хардкорщиков. Не нужно так делать
        var data = 'name='+name+'&email='+email;
        //сформированные тем или иным способом данные можно передавать в $.ajax
        $.ajax({
            url: 'url',
            data: data
            ...
        });
    })
    Ответ написан
    5 комментариев
  • Что такое FOSUserBundle?

    @NewMax
    Для начала, установите бандл на чистую симфонию и сконфигурируйте согласно инструкциям.
    Попробуйте создать несколько пользователей. После этого, сможете реализовать независимый бандл, а ля MyUserBundle путем переопределения стандартных контроллеров и views.
    Документация по бандлу весьма обширная и охватывает довольно широкий круг вопросов.

    Полученный независимый бандл можно будет без особых проблем использовать в любом другом проекте.
    Ответ написан
    Комментировать
  • Как работает этот js-код?

    @NewMax
    Еще как вариант:
    <input type="text" onkeyup="this.value = this.value.replace(/\D/g,'');">
    Ответ написан
    1 комментарий