Documentation for crwlr / url (v2.1)

Query String

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

The queryString() method returns an instance of the Query class, that is part of the separate query string package. You can find the docs for this class here. Everything documented there can be used on the object returned by the queryString() method and of course it automatically changes in the full URL string representation.

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"