class Router {
private $pages = array();
function addRoute($url, $path){
- $this->pages[$url] = $path;
+ $this->pages[trim('/', $url)] = $path;
}
function route($url){
+ url = trim('/', $url);
- if(isset($this->pages["/".$url])) {
+ if(isset($this->pages[$url])) {
- $path = $this->pages["/".$url];
+ $path = $this->pages[$url];
$file_dir = "app/".$path;
if ($path == "") {
require "errors/404.html";
die();
}
if (file_exists($file_dir)) {
require $file_dir;
} else {
require "errors/404.html";
die();
}
} else {
require "errors/404.html";
die();
}
}
}
require "system/Routing.php";
-$url = isset($_GET['url']) ? $_GET['url'] : '';
+[$url] = explode('?', $_SERVER['REQUEST_URI']);
$router = new Router();
$router->addRoute("/cameras", "apps/cameras/index.php");
$router->route($url);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$ip = $_SERVER['REMOTE_ADDR'];
$result = $mysqli->query("SELECT * FROM `наша таблица` WHERE `userip` = '$ip' LIMIT 1");
if ($result->num_rows > 0) {
echo 'Сорян, такой айпишник уже есть в базе';
} else {
echo 'Ok, регистрирую вас';
}
$tel = '79000000000';
$formatted = preg_replace(
'/(\d)(\d{3})(\d{3})(\d{2})(\d{2})/',
'+$1 ($2) ***-**-$5',
$tel
);
var_dump($formatted);
$formatted = preg_replace(
'/(\d)(\d{3})(\d{5})(\d{2})/',
'+$1 ($2) ***-**-$4',
$tel
);
$formatted = preg_replace(
'/^(\d)(\d{3})\d+(\d{2})$/',
'+$1 ($2) ***-**-$3',
$tel
);
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
/blog/post-url
$uri = trim($_SERVER['REQUEST_URI'], '/'); // обрезать концевые слеши
$segments = explode('/', $uri); // Разбить в массив по слешам
// и простейший роутинг
switch ($segments[0]??null) {
case 'blog':
$slug = $segments[1];
include 'blog.php';
break;
default:
echo 'Homepage';
}
$post = query('SELECT * FROM posts WHERE slug = :slug', ['slug' => $slug]);
if (!$post) {
echo '404';
die;
}
echo $post->title;
echo $post->content;