Documentation for crwlr / url (v1.2)

Attention: You're currently viewing the documentation for v1.2 of the url package.
This is not the latest version of the package.
If you didn't navigate to this version intentionally, you can click here to switch to the latest version.

Working with the Query String Component

Getting The Query as an Array

If you're after the query of a url you may want to get it as an array. Don't worry, nothing easier than that:

$url = Url::parse('https://www.example.com/foo?bar=baz&key=value');
var_dump($url->queryArray());

Output

array(2) {
  ["bar"]=>
  string(3) "baz"
  ["key"]=>
  string(5) "value"
}

And the same method can be used to set the whole query string from an array:

$url = Url::parse('https://www.example.com/foo');
$url->queryArray(['param' => 'value', 'yo' => 'lo', 'crwlr' => 'url']);
var_dump($url->__toString());

Output

string(55) "https://www.example.com/foo?param=value&yo=lo&crwlr=url"

Advanced Query String API

If you're already on PHP 8 you can additionally install the crwlr / query-string package for a more advanced API to access and manipulate the query string.

composer require crwlr/query-string

After the package is installed the queryString() method returns an instance of the Query class from that package. You can find the docs for this class here. A quick example:

$url = Url::parse('https://www.example.com/listing?page[number]=3&page[size]=25');

$url->queryString()
    ->get('page')
    ->set('number', '4');

var_dump($url->__toString());

// string(68) "https://www.example.com/listing?page%5Bnumber%5D=4&page%5Bsize%5D=25"