preg_replace не заменятт

245
04 октября 2017, 10:30

Здравствуйте, я ожидаю: news/view/sport/22

А вижу: http://localhost/test2.2/index.php/news/view/sport/22

Код:

$uri = "http://localhost/test2.2/index.php/news/sport/22";
$uriPattern = "/news\/([\w]+)\/([\d]+)/";
$path = 'news/view/$1/$2';
echo preg_replace($uriPattern, $path, $uri) . '<br>';
Answer 1

preg_replace заменяет подстроку, но не отрезает то, что было до нее. Я бы сначала от $uri отрезал все лишнее, а потом уже делал замену. Замена делается правильно. Отрезать можно так

$arr = explode('index.php/', $uri);

вернет массив, вам нужен второй элемент.

READ ALSO
Защищенное соединение вебсокетов php

Защищенное соединение вебсокетов php

Доброго времени сутокЯ использую библиотеку Workerman для создания вебсокет-сервера

281
PHP не находит то, что находит MySQL

PHP не находит то, что находит MySQL

Здравствуйте, скажите пожалуйста, почему в mysql ниже написанный запрос выдаёт ответ

358
Побитовое &ldquo;И&rdquo; в функции php

Побитовое “И” в функции php

Какую роль играет побитовое "И" в функциях php? С какой целью его используют? Например: function foo ($var1, & $var2){

263
Наследование моделей в Codeigniter

Наследование моделей в Codeigniter

Каким образом можно создать модель расширенную от своего абстрактного класса?

388