monochromer
@monochromer
DIVeloper

Как побороть ошибку Uncaught Error: Call to undefined function preq_match()?

Есть такой код для роутинга:
<?php
class Application
{

  private $routes;

  public function __construct($routes) {
    $this->routes = $routes;
  }

  public function run() {
    $url = trim($_SERVER['REQUEST_URI'], '/');

    foreach($this->routes as $routeItem) {
      list($route, $handler) = $routeItem;
      $preparedRoute = \preg_quote($route, '/');

      if (\preq_match("/^$preparedRoute$/i", $uri)) {
        echo $handler();
        return ob_get_clean();
      }
    }
  }
}

$routes = [
  ['/', function() {
    return '<h4>Root</h4>';
  }],
  ['/about', function() {
    return '<h4>About</h4>';
  }]
];

$app = new Application($routes);
$app->run();
?>

При запуске появляется ошибка:
PHP Fatal error:  Uncaught Error: Call to undefined function preq_match()

Как исправить? Функция preq_match стандартная же?

repl для теста - https://repl.it/@monochromer/AlphanumericBlueKilobyte
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
У вас опечатка. preg_match
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы