Имеется такой код:
class Router
{
protected $routes = array();
protected $params = array();
public function __construct()
{
$arr = require 'config/routesConfig.php';
foreach($arr as $key => $val)
{
$this->add($key, $val);
}
}
public function add($route, $params)
{
$route = preg_replace('/{([a-z]+):([^\}]+)}/', '(?P<\1>\2)', $route);
$route = '#^'.$route.'$#';
$this->routes[$route] = $params;
}
public function match()
{
$url = trim($_SERVER['REQUEST_URI'], '/');
foreach ($this->routes as $route => $params)
{
if (preg_match($route, $url, $matches))
{
foreach ($matches as $key => $match)
{
if (is_string($key))
{
if (is_numeric($match))
{
$match = (int) $match;
}
$params[$key] = $match;
}
}
$this->params = $params;
return true;
}
}
return false;
}
public function run()
{
if($this->match())
{
$path = 'controllers\\'.ucfirst($this->params['controller']).'Controller';
if(class_exists($path))
{
$action = $this->params['action'].'Action';
if(method_exists($path, $action))
{
$controller = new $path($this->params);
$controller->$action();
}
else
{
View::errorCode(404);
}
}
else
{
View::errorCode(404);
}
}
else
{
View::errorCode(404);
}
}
}
return array(
'search/{text:\w+}' => array(
'controller' => 'main',
'action' => 'search',
),
);
{text:\w+} это именованная подмаска. Она работает только с английскими буквами. Как переделать что бы работала и с русскими? Я так понял, что нужно добавить /u, но у меня не получается
Да, верно, необходимо строку
$route = '#^'.$route.'$#';
исправить на строку
$route = '#^'.$route.'$#u';
После этого всё должно заработать ка Вы хотите.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Задача заключается в импорте больших объемов данных в бд, во время импорта, или после, будет запускаться индексация полученных данных машиной...
уважаемые знатоки! У меня есть страница aloginphp, на которой должна происходить авторизация администратора сайта
Мне нужно создать пустую таблицу на ReadbeanphpТо есть описать названия полей и их типы
Есть у меня сайт с единой точкой входа, но при попытке перейти по прямой ссылке можно зайти в закрытые разделы сайтаКак можно запретить переходить...