zf2是否有urlencode的别名?

时间:2014-12-01 01:00:48

标签: php zend-framework2 alias urlencode

zf2是否有urlencode的别名?

在zf2中,如果我想要rawurlencode,我会使用:

$escaper = new Zend\Escaper\Escaper();
echo $escaper->escapeUrl('hello world');

哪个输出:

hello%20world

但是,我如何致电urlencode?所需的输出是:

hello+world

如果简短的回答是我只需要直接拨打urlencode,那就这样吧。

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。原生rawurlencode()函数根据RFC 3986生成输出,但urlencode()不生成。这是在escapeUrl()方法中使用rawurlencode背后的主要动机。我认为在这种情况下你有两个选择;

A. 您可以尝试扩展原生Escaper并覆盖escapeUrl()方法:

namespace My\Escaper;

use Zend\Escaper\Escaper as BaseEscaper;

class Escaper extends BaseEscaper
{
    /**
     * {@inheritDoc}
     */
    public function escapeUrl($string)
    {
        return urlencode($string);
    }
}

B。您可以简单地使用urlencode(),如@ cheery在评论中说,这是一个原生函数。 (我个人认为这是最简单的解决方案)

<强>更新

你可能还希望read this answer深入了解urlencode和rawurlencode之间的区别。