function UrlHelper::buildQuery
Same name in other branches
- 9 core/lib/Drupal/Component/Utility/UrlHelper.php \Drupal\Component\Utility\UrlHelper::buildQuery()
- 10 core/lib/Drupal/Component/Utility/UrlHelper.php \Drupal\Component\Utility\UrlHelper::buildQuery()
- 11.x core/lib/Drupal/Component/Utility/UrlHelper.php \Drupal\Component\Utility\UrlHelper::buildQuery()
Parses an array into a valid, rawurlencoded query string.
Function rawurlencode() is RFC3986 compliant, and as a consequence RFC3987 compliant. The latter defines the required format of "URLs" in HTML5. urlencode() is almost the same as rawurlencode(), except that it encodes spaces as "+" instead of "%20". This makes its result non compliant to RFC3986 and as a consequence non compliant to RFC3987 and as a consequence not valid as a "URL" in HTML5.
Parameters
array $query: The query parameter array to be processed; for instance, \Drupal::request()->query->all().
string $parent: (optional) Internal use only. Used to build the $query array key for nested items. Defaults to an empty string.
Return value
string A rawurlencoded string which can be used as or appended to the URL query string.
Related topics
24 calls to UrlHelper::buildQuery()
- BigPipeStrategy::generateBigPipePlaceholderId in core/
modules/ big_pipe/ src/ Render/ Placeholder/ BigPipeStrategy.php - Generates a BigPipe placeholder ID.
- CustomPageExceptionHtmlSubscriberTest::testHandleWithGetRequest in core/
tests/ Drupal/ Tests/ Core/ EventSubscriber/ CustomPageExceptionHtmlSubscriberTest.php - Tests onHandleException with a GET request.
- CustomPageExceptionHtmlSubscriberTest::testHandleWithPostRequest in core/
tests/ Drupal/ Tests/ Core/ EventSubscriber/ CustomPageExceptionHtmlSubscriberTest.php - Tests onHandleException with a POST request.
- drupal_current_script_url in core/
includes/ install.inc - Returns the URL of the current script, with modified query parameters.
- Endpoint::buildResourceUrl in core/
modules/ media/ src/ OEmbed/ Endpoint.php - Builds and returns the endpoint URL.
File
-
core/
lib/ Drupal/ Component/ Utility/ UrlHelper.php, line 42
Class
- UrlHelper
- Helper class URL based methods.
Namespace
Drupal\Component\UtilityCode
public static function buildQuery(array $query, $parent = '') {
$params = [];
foreach ($query as $key => $value) {
$key = $parent ? $parent . rawurlencode('[' . $key . ']') : rawurlencode($key);
// Recurse into children.
if (is_array($value)) {
$params[] = static::buildQuery($value, $key);
}
elseif (!isset($value)) {
$params[] = $key;
}
else {
// For better readability of paths in query strings, we decode slashes.
$params[] = $key . '=' . str_replace('%2F', '/', rawurlencode($value));
}
}
return implode('&', $params);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.