zf2是否有urlencode的别名?
在zf2中,如果要执行rawurlencode,则使用:

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

哪些输出:
hello%20world

但是,我如何调用urlencode?所需输出为:
hello+world

如果简短的回答是我只需要直接调用urlencode,那么就这样。

最佳答案

简言之,答案是否定的,nativerawurlencode()函数根据RFC 3986产生输出,而urlencode()则不是。这是在escapeUrl()方法中使用rawurlencode的主要动机。我认为在这种情况下你有两种选择;
A.您可以尝试扩展本机转义器并重写escapeurl()方法:

namespace My\Escaper;

use Zend\Escaper\Escaper as BaseEscaper;

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

你可以简单地使用urlencode()就像评论中的@cherey所说的,这是一个本地函数。(我个人认为这是最简单的解决方案)
更新:
您可能还想深入了解urlencode和rawurlencode之间的区别。

09-28 08:13