append_query_string icon indicating copy to clipboard operation
append_query_string copied to clipboard

Append a query string to a URL

PHP function to append query string to URL.

If you have a unknown URL and want to add a query string to it, this package is what you are looking for.

Install

composer require nyholm/append-query-string

Usage

$url = 'https://nyholm.tech?example=yes';
$queryString = http_build_query(['foo'=>'bar']);

$result = append_query_string($url, $queryString);

echo $result;
// https://nyholm.tech?example=yes&foo=bar

Yes, this is pretty much as writing:

$result = $url . $queryString;

But it will support if URL has query string or not. It will also if a URL hash fragment is used.

Modes

There are three different modes you can use with append_query_string.

  • APPEND_QUERY_STRING_IGNORE_DUPLICATE (default)
  • APPEND_QUERY_STRING_REPLACE_DUPLICATE
  • APPEND_QUERY_STRING_SKIP_DUPLICATE

They are easiest explained with examples.

APPEND_QUERY_STRING_IGNORE_DUPLICATE

$url = 'https://nyholm.tech?foo=x&a=1';
$queryString = http_build_query(['a'=>'2']);

$result = append_query_string($url, $queryString, APPEND_QUERY_STRING_IGNORE_DUPLICATE);

echo $result;
// https://nyholm.tech?foo=x&a=1&a=2

APPEND_QUERY_STRING_REPLACE_DUPLICATE

$url = 'https://nyholm.tech?foo=x&a=1';
$queryString = http_build_query(['a'=>'2']);

$result = append_query_string($url, $queryString, APPEND_QUERY_STRING_REPLACE_DUPLICATE);

echo $result;
// https://nyholm.tech?foo=x&a=2

APPEND_QUERY_STRING_SKIP_DUPLICATE

$url = 'https://nyholm.tech?foo=x&a=1';
$queryString = http_build_query(['a'=>'2']);

$result = append_query_string($url, $queryString, APPEND_QUERY_STRING_SKIP_DUPLICATE);

echo $result;
// https://nyholm.tech?foo=x&a=1