Я пытаюсь обновить параметр в URL моего реферера:
$referer = $request->headers->get('referer');
Например, $referer
URL с двумя параметрами:
string(96) "http://<my_url>/web/app_dev.php/urlpart/?param1=value1¶m2=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);
Спасибо за помощь !
Это должно работать:
$oldReferer = 'http://<my_url>/web/app_dev.php/urlpart/?param1=value1¶m2=value2';
$newReferer = Request::create($oldReferer, 'GET', array('param1' => 'updatedvalue1'))->getUri();
Других решений пока нет …