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 !

  • 写回答

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();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能