Свободное общение | Router
есть функция function _route($route = [])
{
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri = empty($uri) ? '/' : $uri;
foreach ($route as $path => $file) {
if ($uri === $path) {
require $file;
return;
}
}
die('No found '.$uri);
}
_route([
'/welcome/' => 'post.php',
'/home' => 'home.php'
]);
site.ru/welcome/?id=1
Хотелось бы так site.ru/welcome/1
Можно?
Умный Avenax найди решению))
сделать нормальный роутер и можно будет
System (22.07.2019 в 11:06)
сделать нормальный роутер и можно будет
сделать нормальный роутер и можно будет
можно сделать изюминку из этого говно)
539790856 ,
Для Apache создаешь .htaccess и прописываешь:
Для Nginx в файле виртуального хоста, в секцию location / {} прописываешь
<?php
$routes = require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'routes.php';
$request = urldecode($_SERVER['REQUEST_URI']);
$file = false;
foreach($routes as $route => $action) {
if(preg_match('#^' . $route . '$#', $request, $matches)) {
$_GET = array_slice($matches, 1);
$file = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'applications' . DIRECTORY_SEPARATOR . $action . '.php';
}
}
unset($routes, $request, $action, $route, $matches);
if(is_file($file)) {
require $file;
} else {
echo 'Not Found';
} Для Apache создаешь .htaccess и прописываешь:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]
</IfModule> Для Nginx в файле виртуального хоста, в секцию location / {} прописываешь
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php;
}
539790856 , Файл routes.php
<?php
return [
'/welcome/?<id>[0-9]+)' => 'index',
];
[/b]
откуда украл? Очень знакомо)
VaDoSiQ (22.07.2019 в 11:26)
[b]539790856 ,
Для Apache создаешь .htaccess и прописываешь:
Для Nginx в файле виртуального хоста, в секцию location / {} прописываешь
[b]539790856 ,
<?php
$routes = require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'routes.php';
$request = urldecode($_SERVER['REQUEST_URI']);
$file = false;
foreach($routes as $route => $action) {
if(preg_match('#^' . $route . '$#', $request, $matches)) {
$_GET = array_slice($matches, 1);
$file = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'applications' . DIRECTORY_SEPARATOR . $action . '.php';
}
}
unset($routes, $request, $action, $route, $matches);
if(is_file($file)) {
require $file;
} else {
echo 'Not Found';
} Для Apache создаешь .htaccess и прописываешь:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [L]
</IfModule> Для Nginx в файле виртуального хоста, в секцию location / {} прописываешь
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php;
}
откуда украл? Очень знакомо)
539790856 (22.07.2019 в 11:29)
откуда украл? Очень знакомо) JustCore 0.5.0
VaDoSiQ (22.07.2019 в 11:33)
539790856 (22.07.2019 в 11:29)
откуда украл? Очень знакомо)
JustCore 0.5.0
539790856 (22.07.2019 в 11:29)
откуда украл? Очень знакомо) JustCore 0.5.0
Aa))
539790856 (22.07.2019 в 11:34)
VaDoSiQ (22.07.2019 в 11:33)
539790856 (22.07.2019 в 11:29)
откуда украл? Очень знакомо)
JustCore 0.5.0
Aa))
VaDoSiQ (22.07.2019 в 11:33)
539790856 (22.07.2019 в 11:29)
откуда украл? Очень знакомо) JustCore 0.5.0
Aa))
Роутер годный. Под свои нужды можно дописать функционал и все будет ок. Больше 2х лет с этим кодом работаю, все очень хорошо:)
Стр.: 1, 2