mirror of
https://github.com/predis/predis.git
synced 2026-09-05 23:47:28 +00:00
Fix URI parsing on multiple equal signs in pair value of query string.
This commit is contained in:
@@ -119,7 +119,7 @@ class ConnectionParameters implements ConnectionParametersInterface
|
||||
|
||||
if (isset($parsed['query'])) {
|
||||
foreach (explode('&', $parsed['query']) as $kv) {
|
||||
$kv = explode('=', $kv);
|
||||
$kv = explode('=', $kv, 2);
|
||||
if (isset($kv[0], $kv[1])) {
|
||||
$parsed[$kv[0]] = $kv[1];
|
||||
}
|
||||
|
||||
@@ -174,6 +174,23 @@ class ParametersTest extends StandardTestCase
|
||||
$this->assertSame($expected, ConnectionParameters::parse($uri));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group disconnected
|
||||
*/
|
||||
public function testParsingURIWithMoreThanOneEqualSignInQueryStringPairValue()
|
||||
{
|
||||
$uri = 'tcp://10.10.10.10?foobar=a=b=c&persistent=1';
|
||||
|
||||
$expected = array(
|
||||
'scheme' => 'tcp',
|
||||
'host' => '10.10.10.10',
|
||||
'foobar' => 'a=b=c',
|
||||
'persistent' => '1',
|
||||
);
|
||||
|
||||
$this->assertSame($expected, ConnectionParameters::parse($uri));
|
||||
}
|
||||
|
||||
/**
|
||||
* @group disconnected
|
||||
* @expectedException InvalidArgumentException
|
||||
|
||||
Reference in New Issue
Block a user