/** * Returns a pattern representing an uri. It can be used to check if two urls have the same * equivalence class. * * @return string */ public function getPattern() { // file type $pattern = $this->getFileType() . ':'; // schema (http, https) $pattern .= $this->uri->getScheme() . ':'; // host $pattern .= $this->uri->getHost() . ':'; $path = $this->uri->getPath() . '?' . $this->uri->getQuery(); $pathNew = preg_replace("^[a-f0-9]{32}^", "<h>", $path); $pathNew = preg_replace("^[a-z\\-\\_]{1,}^i", "<s>", $pathNew); $pathNew = preg_replace("^[0-9]{1,}^", "<i>", $pathNew); $pattern .= $pathNew; return $pattern; }
public function testConstructor() { $uri = new Uri('http://*****:*****@example.com:81/foo/bar?a=2&b=3#baz'); $this->assertEquals('http', $uri->getScheme()); $this->assertEquals('example.com', $uri->getHost()); $this->assertEquals('/foo/bar', $uri->getPath()); $this->assertEquals(81, $uri->getPort()); $this->assertEquals('user:password', $uri->getUserInfo()); $this->assertEquals('a=2&b=3', $uri->getQuery()); $this->assertEquals('baz', $uri->getFragment()); }
public function testShouldParseUriWithPortSuccessful() { $case = 'http://www.example.com:3232/payments/1?foo=bar&baz=bar#order'; $uri = new Uri($case); $this->assertEquals(3232, $uri->getPort()); $this->assertEquals('www.example.com', $uri->getHost()); $this->assertEquals('http', $uri->getScheme()); $this->assertNotEmpty($uri->getPath()); $this->assertEquals('/payments/1', $uri->getPath()); $this->assertNotEmpty($uri->getQuery()); $this->assertEquals('foo=bar&baz=bar', $uri->getQuery()); $this->assertNotEmpty($uri->getFragment()); $this->assertEquals('order', $uri->getFragment()); $this->assertEquals($case, $uri->__toString()); }
public function withUri(Uri $uri, bool $preserveHost = false) : HttpRequest { $request = clone $this; $request->uri = $uri; $host = $uri->getHost(); if ($host != '') { $host .= $uri->getPort() ? ':' . $uri->getPort() : ''; if ($preserveHost) { if (empty($request->getHeader('Host'))) { $request = $request->withHeader('Host', $host); } } else { $request = $request->withHeader('Host', $host); } } return $request; }
protected function _fetch(&$counter, $params) { $result = parent::_fetch($counter, $params); $uri = new Uri($_SERVER['PHP_SELF']); foreach ($result as $key => $data) { $nav_uri = new Uri($data['url']); if ($uri->getHost() != $nav_uri->getHost()) { continue; } if (is_integer($res = $uri->comparePath($nav_uri))) { if ($res >= 0) { $result[$key]['in_path'] = true; } if ($res == 0) { $result[$key]['selected'] = true; } } } return $result; }
/** * @covers MediaCore\Uri::getHost */ public function testGetHost() { $url = 'http://example.com/path/to/directory?foo=bar'; $uri = new Uri($url); $this->assertEquals('example.com', $uri->getHost()); $url = 'http://example.com:8080/path/to/directory?foo=bar'; $uri = new Uri($url); $this->assertEquals('example.com', $uri->getHost()); }
public function testSetGetHost() { $host = 'somenewhost'; $this->uri->setHost($host); $this->assertEquals($host, $this->uri->getHost()); }
public function testSetPort() { $uri = new Uri('http', 'www.yahoo.com:8080'); $this->assertEquals('www.yahoo.com:8080', $uri->getAuthority()); $this->assertEquals('www.yahoo.com', $uri->getHost()); $this->assertEquals(8080, $uri->getPort()); $this->assertEquals('http://www.yahoo.com:8080', $uri->toString()); }