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之间的区别。