duanpiyao2734
2015-08-07 08:42
浏览 143
已采纳

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

I am trying to update a parameter in my referer url:

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

For example, $referer is an url whith two parameter:

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

I'd like to easyly replace param1=value1 by param1=updatedvalue1 for example with another one.

I know we can do this with twig with the current request url:

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

Is it possible to do the same thing in a Symfony 2 controller to update the referer?

I have found a solution with preg_replace function in PHP, I hope there is a better way to do it seems ugly, I am trying to find a better solution, any help will be apprecied!

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

Thank you for your help !

图片转代码服务由CSDN问答提供 功能建议

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

 <  code> $ referer = $ request-&gt; headers-&gt; get('referer'); 
   
 
 

例如, $ referer 是一个url,带有两个参数:

  string(96)“http://&lt; my_url&gt; /web/app_dev.php/urlpart/?param1 = value1&amp; param2 =  value2“
   
 
 

我想通过 param1 = updatedvalue1 轻松替换 param1 = value1 ,例如 另一个。

我知道我们可以使用当前请求的 twig 来执行此操作url:

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

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

我找到了一个带有 preg_replace 函数的解决方案 PHP ,我希望有一个更好的方法来做它看起来很难看,我想找到一个更好的解决方案,任何帮助都会得到认可!

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

感谢您的帮助!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dphnn333971 2015-08-07 12:47
    已采纳

    This should work:

    $oldReferer = 'http://<my_url>/web/app_dev.php/urlpart/?param1=value1&param2=value2';
    $newReferer = Request::create($oldReferer, 'GET', array('param1' => 'updatedvalue1'))->getUri();
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题