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; } }
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); } } }