require_once 'vendor/autoload.php';
function levelGenerate(&$levels)
{
$max_level = 100; // тут указывается максимально возможный уровень
$lastLevel = $levels->last();
$levels->push([
'level' => ++$lastLevel['level'],
'rating' => $lastLevel['rating'] * 1.1,
]);
if ($levels->last()['level'] < $max_level) {
return levelGenerate($levels);
}
}
$levels = collect([['level' => 1, 'rating' => 100]]);
levelGenerate($levels);
$my_rating = 1245;
$my_level = $levels->where('rating', '<=', $my_rating)->last();
dd($my_level['level']); // 27
// my_rating = 741
// array:2 [▼
// "level" => 22
// "rating" => 740.02499442582
// ]
// my_rating = 150
// array:2 [▼
// "level" => 5
// "rating" => 146.41
// ]
// my_rating = 1245
// array:2 [▼
// "level" => 27
// "rating" => 1191.8176537727
// ]
$orderapi = 7690218;
$result = json_decode('{"orders":{"7690218":{"id":"7690218","obj":"wall35173603_613","act":"vk_like","status":"works","timeout":"10","count":"5","count_good":"0","start":"16:21 06.09.2018","criterion":"no"}}}');
$status = $result->orders->$orderapi->status; // works
$count_good = $result->orders->$orderapi->count_good; // 0
$_GET['filter'] = '1.5.2'; # AND `banner` = '1.5.2'
$_GET['filter'] = 'RU'; # AND `country` = 'RU'
$_GET['filter'] = 'Тег-Тег'; #AND `category_id` in (SELECT `category_id` FROM `categories` WHERE `name` IN ('Тег' , 'Тег'))
$_GET['filter'] = '1.5.2_RU_Тег-Тег'; # AND `banner` = '1.5.2' AND `country` = 'RU' AND `category_id` in (SELECT `category_id` FROM `categories` WHERE `name` IN ('Тег' , 'Тег'))
$_GET['filter'] = '1.5.2_RU'; # AND `banner` = '1.5.2' AND `country` = 'RU'
$sql = [];
if(isset($_GET['filter'])) {
$filter = sanitize($_GET['filter']);
$filter = explode('_', $filter);
for ($i = 0; $i < count($filter); $i++) {
if (preg_match('#^[0-9|\.]+$#', $filter[$i]))
$sql[] = "AND `banner` = '{$filter[$i]}'";
elseif (preg_match('#^[A-Z]{2}$#', $filter[$i]))
$sql[] = "AND `country` = '{$filter[$i]}'";
else {
$tags = array_map(function($v) {
return str_replace("'", "", $v);
}, explode('-', $filter[$i]));
$names = implode("' , '", $tags);
$sql[] = "AND `category_id` in (SELECT `category_id` FROM `categories` WHERE `name` IN ('{$names}'))";
}
}
}
$sql = implode(' ', $sql);
echo $sql; // это пихать в запрос к БД
$_GET['filter']
, это примеры запросов и их результат // нужные переменные
$app = new App();
$router = $app->router;
// страницы и соответствующие им файлы.
// если урл "site.ru/product" - то хотелось бы подключить product.php
$router->dist([
'index' => PAGES . 'index.php',
'product' => PAGES . 'product.php',
], compact('app', 'router'));
// метод dist (сокращенно):
public function dist($arr, $params) {
// файл подключается, но переменных, определенных выше - не видно
include_once $arr[$this->route];
}
echo similar_text('Слово 1', 'Слово 2'); // 11
echo similar_text('This is my test', 'This is my ...'); // 11
Также видел, некоторые крупные разработки содержат в комментариях информацию о том, какие параметры принимает и возвращает функция.
function test(int $id, array $user): array
{
return [];
}
include_once 'setting.php';
if ($_SERVER['REQUEST_URL'] == '/') {
$Page = 'index';
$Module = 'index';
} else {
$URL_Path = parse_url($_SERVER['REQUEST_URL'], PHP_URL_Path);
$URL_Parts = EXPLODE('/', trim($URL_Path, ' /'));
$Page = array_shift($URL_Parts);
$Module = array_shift($URL_Parts);
}
if ($Page =='index' and $Module == 'index') {
echo 'Главная страница';
} elseif ($Page == 'janr') {
echo 'Жанры';
}