Показать сообщение отдельно
  #7 (permalink)  
Старый 25.11.2019, 03:39
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Сообщение от Malleys
отличать POST-запросы
Метод, и путь этим занимается роутинг.
Именно он определяет действия при том и инном path and methods
Примеров роутинга полно. Каждый соаременный фреймворк имеет свой роутинг обычно работающий с query, path, methods, database, yaml, json, ini ...
самый простой роутинг на php7
<?php 
# Author - Fedor Vlasenko, vlasenkofedor@mail.ru php 7
define('METHOD', $_SERVER['REQUEST_METHOD']);
define('URI', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));

function router($url, ...$args)
{
    (empty($args[1]) || false !== strpos(METHOD, $args[0]))
    && (URI === $url || preg_match('#^' . $url . '$#iu', URI, $match))
    && die(call_user_func_array(end($args), $match ?? []));
}

router('/', function () {
    echo 'Index page';
});

router('/article/(.*[^/])', 'GET', function (...$args) {
  echo 'Article: ', $args[1];
});

header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
echo '404';

по сути более понятно было, чтобы вы не писали магию и взависимости от заголовков отдавали ответ
а прямо в (пути, query, параметрах) указывали тип ответа
person, person-xml, person?type=xml

Последний раз редактировалось Vlasenko Fedor, 25.11.2019 в 03:44.
Ответить с цитированием