本文整理汇总了PHP中Zend\Uri\Http::encodeQueryFragment方法的典型用法代码示例。如果您正苦于以下问题:PHP Http::encodeQueryFragment方法的具体用法?PHP Http::encodeQueryFragment怎么用?PHP Http::encodeQueryFragment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend\Uri\Http
的用法示例。
在下文中一共展示了Http::encodeQueryFragment方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __invoke
public function __invoke($routeName, $params = [], $excludedParams = [])
{
/** @var \Zend\View\HelperPluginManager $helperManager */
$helperManager = $this->serviceLocator;
/** @var \Zend\ServiceManager\ServiceManager $locator */
$locator = $helperManager->getServiceLocator();
/** @var \Zend\Mvc\Router\SimpleRouteStack $router */
$router = $locator->get('Router');
$assembledParams = [];
if ($router->hasRoute($routeName)) {
/** @var \Zend\Mvc\Router\Http\RouteInterface $route */
$route = $router->getRoute($routeName);
$assembledParams = $route->getAssembledParams();
}
/** @var \Zend\Http\PhpEnvironment\Request $request */
$request = $locator->get('request');
$uri = clone $request->getUri();
$query = [];
foreach (array_merge($uri->getQueryAsArray(), $params) as $key => $value) {
if ($value != '') {
$query[$key] = $value;
}
}
$uri->setQuery($query);
/** @var \Zend\View\Helper\Url $urlViewHelper */
$urlViewHelper = $this->view->plugin('url');
$return = $urlViewHelper->__invoke($routeName, $query);
$query = $uri->getQueryAsArray();
foreach ($uri->getQueryAsArray() as $key => $value) {
if (in_array($key, $assembledParams) || in_array($key, $excludedParams)) {
unset($query[$key]);
}
}
$uri->setQuery($query);
return count($query) == 0 ? $return : $return . '?' . Http::encodeQueryFragment($uri->getQuery());
}