scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 125  →  ?path2? @ 126
/vendor/aura/uri/src/Aura/Uri/Query.php
@@ -0,0 +1,83 @@
<?php
/**
*
* This file is part of the Aura project for PHP.
*
* @package Aura.Uri
*
* @license http://opensource.org/licenses/bsd-license.php BSD
*
*/
namespace Aura\Uri;
 
/**
*
* Processing the query string
*
* @package Aura.Uri
*
*/
class Query extends \ArrayObject
{
/**
*
* Returns the query portion as a string.
*
* @return string The query string; e.g., `foo=bar&baz=dib`.
*
*/
public function __toString()
{
return $this->buildString($this->getArrayCopy());
}
 
/**
*
* Sets values from a query string; overwrites any previous values.
*
* To set from an array, use `exchangeArray()`.
*
* @param string $spec The query string to use; for example,
* `foo=bar&baz=dib`.
*
* @return void
*
*/
public function setFromString($spec)
{
parse_str($spec, $query);
$this->exchangeArray($query);
}
 
/**
*
* Build string from an array
*
* @param array $array
*
* @param string $prefix Defaults to null
*
* @return string Returns a string
*/
protected function buildString(array $array, $prefix = null)
{
$elem = [];
foreach ($array as $key => $val) {
 
$key = ($prefix)
? $prefix . '[' . $key . ']'
: $key;
 
if (is_array($val)) {
$elem[] = $this->buildString($val, $key);
} else {
$val = ($val === null || $val === false)
? ''
: rawurlencode($val);
$elem[] = rawurlencode($key) . '=' . $val;
}
}
 
return implode('&', $elem);
}
}