是否有一种简单的方法来替换Symfony 2中的referer中的url参数?

时间:2015-08-07 08:42:47

标签: php symfony pcre url-parameters

我正在尝试更新我的referer url中的参数:

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

例如,$referer是一个带有两个参数的网址:

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

我希望param1=value1轻松地将param1=updatedvalue1替换为另一个twig

我知道我们可以使用{{ path(app.request.attributes.get('_route'), app.request.query.all|merge({'sort': 'address'})) }} 使用当前请求url执行此操作:

preg_replace

是否可以在Symfony 2控制器中执行相同的操作来更新引用者?

我在PHP找到了一个$referer = preg_replace('/([?&])(param1)=\w+(&|$)/', '', $referer); $referer = preg_replace('/(param2)=\w+(&|$)/', '', $referer); 函数的解决方案,我希望有一个更好的方法来做它看起来很丑,我想找到一个更好的解决方案,任何帮助都会得到认可!

select t.* FROM user_tq t join 
CASE when t.blogid = 0 then user_dp ELSE  user_blog END b
on t.uid = b.uid where ***;

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

这应该有效:

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