Symfony 1.4:是否可以防止转义URL?

Symfony 1.4:是否可以防止转义URL?,url,redirect,symfony1,escaping,html-entities,Url,Redirect,Symfony1,Escaping,Html Entities,如果我按正常方式执行重定向操作: $this->redirect('@mypage?apple=1&banana=2&orange=3'); 。。。Symfony生成正确的URL: /something/something?apple=1&banana=2&orange=3 然而,由于一些奇怪的原因,以下内容被逃脱: $string = 'apple=1&banana=2&orange=3'; $this->redirect('@m

如果我按正常方式执行重定向操作:

$this->redirect('@mypage?apple=1&banana=2&orange=3');
。。。Symfony生成正确的URL:

/something/something?apple=1&banana=2&orange=3
然而,由于一些奇怪的原因,以下内容被逃脱:

$string = 'apple=1&banana=2&orange=3';
$this->redirect('@mypage?'.$string);
。。。并生成以下URL:

/something/something?apple=1&banana=2&orange=3
有没有办法避免这种转义,并在URL中正确显示符号?我已经尝试了我能想到的一切,这让我发疯。当我从数据库中提取一个保存为字符串的查询,并希望将其锁定到URL上时,我需要这个。我知道我可以从字符串中生成一个数组,然后从数组中生成一个全新的URL,但由于这种愚蠢的转义,这似乎会带来很大的开销

谢谢。

当您说“正确显示”时,您可能忽略了以下事实:
&
是URL中变量分隔符
&
的“正确”表示形式-对于格式良好的X(HT)ML,
&
必须编码为
&

这就是说,脚本中的行为是不寻常的,因为在这两个示例中,您预期的行为是相同的。我猜这些并不是路由规则的特定参数,尽管我希望symfony作为默认值来对变量进行如下的slashify:

/something/something/apple/1/banana/2/orange/3
不是一些奇怪的PHP设置干扰了字符串,是吗


编辑:我已经用symfony 1.3.3对其进行了测试,并按照我的建议对变量进行了slashifig。我倾向于认为是PHP/Apache设置导致了这种情况。检查php.ini文件中的arg_separator.output设置。

我相信这是最好的选择

$url = $this->getController()->genUrl('search/list');
$this->redirect($url.'?q='.$q.'&g='.$g);

这对我来说很好(没有将&’转义到&)

@Raise:没有异常的PHP设置或类似的设置。我所说的“正确显示”只是指分隔请求参数的适当的符号。现在这个“&{banana}={2}”会被symfony理解为“&{amp;banana}={2}”,这是完全错误的。slashizing。。。是的,这将通过routing.yml关联。然而,我有25个变量串在一起,我不想在路由中声明这些变量,只想保留为GET查询字符串,以便进一步操作。