написать функцию роутер php

89
17 апреля 2021, 20:00

на процедурке без ООП и классов можно сделать роутер?

Например так

routes('/' => 'index.php',    
'authorize' => 'author8ze.php'    
);    

Если пройдите по ссылке site.ru/authorize открывается authorize.php

помогите)) у меня не получается..

Answer 1

Примерно так

.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [L]

index.php

<?php
function router($routes = [])
{
    $request_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    $request_path = rtrim($request_path, '/');
    $request_path = empty($request_path) ? '/' : $request_path;
    foreach ($routes as $path => $file) {
        if ($request_path === $path) {
            require $file;
            return;
        }
    }
    header('HTTP/1.1 404 Not Found');
}

router([
    '/' => '1.php',
    '/test' => '2.php'
]);
READ ALSO
php страница/калькулятор с css в HTML

php страница/калькулятор с css в HTML

Можно ли перенести калькулятор из indexphp вместе со стилями в index

98
Деплой при пуше в определенную ветку GitlabCI

Деплой при пуше в определенную ветку GitlabCI

Возможно-ли в GitlabCI настроить сборку проекта на определенном сервере при пуше в определенную ветку? Те

102
Запуск minecraft 1.7.10 Forge через bat

Запуск minecraft 1.7.10 Forge через bat

Собрался делать кастомный лаунчер для игры Minecraft, но она написана на javaС java я толком не знаком

102
Для чего нужен модификатор transient?

Для чего нужен модификатор transient?

Каково назначение модификатора transient в Java?

139