Есть ли простой способ заменить параметр url в реферере в Symfony 2?

Я пытаюсь обновить параметр в URL моего реферера:

$referer = $request->headers->get('referer');

Например, $referer URL с двумя параметрами:

string(96) "http://<my_url>/web/app_dev.php/urlpart/?param1=value1&param2=value2"

Я хотел бы легко заменить param1=value1 от param1=updatedvalue1 например с другим.

Я знаю, что мы можем сделать это с twig с текущим URL запроса:

{{ path(app.request.attributes.get('_route'),
app.request.query.all|merge({'sort': 'address'})) }}

Можно ли сделать то же самое в контроллере Symfony 2 для обновления реферера?

Я нашел решение с preg_replace функция в PHPЯ надеюсь, что есть лучший способ сделать это, кажется уродливым, я пытаюсь найти лучшее решение, любая помощь будет оценена!

$referer = preg_replace('/([?&])(param1)=\w+(&|$)/', '', $referer);
$referer = preg_replace('/(param2)=\w+(&|$)/', '', $referer);

Спасибо за помощь !

2

Решение

Это должно работать:

$oldReferer = 'http://<my_url>/web/app_dev.php/urlpart/?param1=value1&param2=value2';
$newReferer = Request::create($oldReferer, 'GET', array('param1' => 'updatedvalue1'))->getUri();
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]