Пример #1
0
 public function upload()
 {
     if (!isset($_POST['terms'])) {
         echo 'Перед загрузкой файлов необходимо прочитать и принять условия пользования.';
         die;
     }
     if (empty($_FILES['uploadFile']['tmp_name']) && empty($_POST['remote_url'])) {
         echo 'Выберите файл для загрузки!';
         die;
     }
     if (empty($_FILES) && $_SERVER['CONTENT_LENGTH'] > 52428800) {
         echo 'Размер файла превышает максимум!';
         die;
     }
     if (!empty($_FILES['uploadFile']['tmp_name'])) {
         if ($_FILES['uploadFile']['error'] === UPLOAD_ERR_INI_SIZE || $_FILES['uploadFile']['error'] === UPLOAD_ERR_FORM_SIZE) {
             echo 'Размер файла превышает максимум!';
             die;
         } elseif ($_FILES['uploadFile']['error'] === UPLOAD_ERR_PARTIAL) {
             echo 'Файл поврежден!';
             die;
         } elseif ($_FILES['uploadFile']['error'] === UPLOAD_ERR_NO_FILE) {
             echo 'Файл не был загружен!';
             die;
         } elseif ($_FILES['uploadFile']['error'] === UPLOAD_ERR_NO_TMP_DIR) {
             echo 'Отсутствует временная папка. Обратитесь к администратору.';
             die;
         } elseif ($_FILES['uploadFile']['error'] === UPLOAD_ERR_CANT_WRITE) {
             echo 'Ошибка при записи файла. Обратитесь к администратору.';
             die;
         } elseif ($_FILES['uploadFile']['error'] === UPLOAD_ERR_EXTENSION) {
             echo 'Загрузка файла была остановлена. Обратитесь к администратору.';
             die;
         }
         $fileName = strtolower(str_replace(' ', '_', $_FILES['uploadFile']['name']));
         $fileName = \Helpers\Data::toTranslite($fileName);
         $fileSize = $_FILES['uploadFile']['size'];
     }
     if (!empty($_POST['remote_url'])) {
         $checkURL = \Helpers\GUMP::is_valid($_POST, array('remote_url' => 'valid_url'));
         if (is_array($checkURL)) {
             echo $checkURL[0];
             die;
         }
         $fileSize = \Helpers\SimpleCurl::remotefileSize($_POST['remote_url']);
         if (is_numeric($fileSize) == FALSE || $fileSize == 0) {
             echo 'Не удалось определить размер удаленного файла.';
             die;
         }
         if ($fileSize > 52428800) {
             echo 'Размер удаленного файла превышает 50 МБ';
             die;
         }
         $fileName = array_pop(explode('/', $_POST['remote_url']));
         if (!preg_match('/.+\\.[a-z0-9]{2,}$/ui', $fileName)) {
             echo 'Неверный формат удаленного файла.';
             die;
         }
         $fileName = strtolower(\Helpers\Data::toTranslite($fileName));
     }
     $fileExtension = \Helpers\Document::getExtension($fileName);
     $fileType = \Helpers\Document::getFileType($fileExtension);
     $mimeType = $fileType . '/' . $fileExtension;
     $serverFileName = uniqid() . '_' . $fileName . '.txt';
     if (!empty($_SESSION['rf_user'])) {
         $userName = $_SESSION['rf_user'];
     } else {
         $userName = '******';
     }
     $currentDate = time();
     $uploadPath = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';
     if (!empty($_FILES['uploadFile']['tmp_name'])) {
         if (!move_uploaded_file($_FILES['uploadFile']['tmp_name'], $uploadPath . $serverFileName)) {
             echo 'Ошибка при перемещении файла.';
             die;
         }
     }
     if (!empty($_POST['remote_url'])) {
         if (!copy($_POST['remote_url'], $uploadPath . $serverFileName)) {
             echo 'Не удалось загрузить файл с удаленного сервера.';
             die;
         }
     }
     $result = $this->_files->uploadFile($userName, $fileName, $serverFileName, $fileSize, $currentDate, $mimeType);
     if (ctype_digit($result)) {
         echo $result;
         die;
     }
 }
Пример #2
0
 public function parse($rest_id)
 {
     $data['dishes'] = $this->_model->get_dishes($rest_id);
     if (empty($data['dishes'])) {
         libxml_use_internal_errors(true);
         $url = "https://www.10bis.co.il/Restaurants/Menu/Delivery/{$rest_id}";
         $content = Curl::get($url);
         @($doc = new \DOMDocument());
         @$doc->loadHTML($content);
         @($xml = simplexml_import_dom($doc));
         // just to make xpath more simple
         @($dishes = $xml->xpath("//div[@data-dishid]"));
         foreach ($dishes as $dish) {
             @($dish_id = $dish['data-dishid']);
             @($dish_title = $dish->div[1]->div->p ?: $dish->div->div->p);
             @($dish_price = $dish->div[1]->div[1] ?: $dish->div->div[1]);
             @($dish_price = floatval(str_replace('₪', '', $dish_price)));
             @($dish_image = $dish->div['style']);
             //TODO: parse this :/
             @($dish_desc = $dish['title']);
             @($dish_image = str_replace(array('background: url(', ') no-repeat center;'), '', $dish_image));
             if (!$dish_price) {
                 continue;
             }
             $dish_data = array('dish_id' => $dish_id, 'rest_id' => $rest_id, 'dish_price' => $dish_price, 'dish_image' => $dish_image ?: '', 'dish_title' => trim($dish_title) ?: '', 'dish_desc' => trim($dish_desc) ?: '');
             $this->_model->add_dish($dish_data);
         }
     }
 }