Sun*_*ms' 2 php pcre url-parameters symfony
我正在尝试更新我的referer url中的参数:
$referer = $request->headers->get('referer');
Run Code Online (Sandbox Code Playgroud)
例如,$referer是一个url whith两个参数:
string(96) "http://<my_url>/web/app_dev.php/urlpart/?param1=value1¶m2=value2"
Run Code Online (Sandbox Code Playgroud)
我想param1=value1通过param1=updatedvalue1例如另一个轻松替换.
我知道我们可以twig使用当前请求url 执行此操作:
{{ path(app.request.attributes.get('_route'),
app.request.query.all|merge({'sort': 'address'})) }}
Run Code Online (Sandbox Code Playgroud)
是否可以在Symfony 2控制器中执行相同的操作来更新引用程序?
我找到了一个具有preg_replace功能的解决方案PHP,我希望有一个更好的方法来做它看起来很丑,我想找到一个更好的解决方案,任何帮助都会得到认可!
$referer = preg_replace('/([?&])(param1)=\w+(&|$)/', '', $referer);
$referer = preg_replace('/(param2)=\w+(&|$)/', '', $referer);
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助 !
小智 5
这应该工作:
$oldReferer = 'http://<my_url>/web/app_dev.php/urlpart/?param1=value1¶m2=value2';
$newReferer = Request::create($oldReferer, 'GET', array('param1' => 'updatedvalue1'))->getUri();
Run Code Online (Sandbox Code Playgroud)