protected function runProviderTest(ProviderInterface $provider) { $this->assertTrue($provider->isSpamReferrer($this->parser->parseUrl('http://example.org'))); $this->assertTrue($provider->isSpamReferrer($this->parser->parseUrl('http://dev.example.org'))); $this->assertTrue($provider->isSpamReferrer($this->parser->parseUrl('http://dev.example.com'))); $this->assertFalse($provider->isSpamReferrer($this->parser->parseUrl('http://xyz.example.com'))); }
/** * @param string|Url $url * @return bool */ public function isSpamReferrer($url) { if (!$url instanceof Url) { try { $url = $this->domainParser->parseUrl($url); } catch (\Exception $exp) { return false; } } return $this->provider->isSpamReferrer($url); }
/** * Scheme should be output in lowercase regardless of case of original arg * * @group issue51 * * @see https://tools.ietf.org/html/rfc3986#section-3.1 */ public function testSchemeAlwaysConvertedToLowerCasePerRFC3986() { $spec = 'HttPS://www.google.com'; $expected = 'https://www.google.com'; $url = $this->parser->parseUrl($spec); $this->assertEquals($expected, $url->__toString()); }
protected function setUp() { parent::setUp(); $file = realpath(dirname(__DIR__) . '/../../../data/' . PublicSuffixListManager::PDP_PSL_PHP_FILE); $psl = new PublicSuffixList($file); $parser = new Parser($psl); $this->url = $parser->parseUrl($this->spec); }
/** * @group issue29 * @see https://github.com/jeremykendall/php-domain-parser/issues/29 */ public function testIdnToAscii() { $idn = 'Яндекс.РФ'; $expected = 'http://яндекс.рф'; $url = $this->parser->parseUrl($idn); $actual = $url->__toString(); $this->assertEquals($expected, $actual); }
/** * @return string|null */ public function getDomain() { if (!isset($this->uri['host'])) { return null; } $pslManager = new PublicSuffixListManager(); $parser = new Parser($pslManager->getList()); $parse = $parser->parseUrl($this->uri['host'] . '://' . $this->uri['host']); return $parse->host->registerableDomain; }
/** * @param bool $withSuffix * * @return null|string */ public function getDomain(bool $withSuffix = true) { if (!isset($this->uri['host'])) { return null; } $pslManager = new PublicSuffixListManager(); $parser = new Parser($pslManager->getList()); $parse = $parser->parseUrl($this->uri['host'] . '://' . $this->uri['host']); if ($withSuffix) { return $parse->host->registerableDomain; } else { return substr($parse->host->registerableDomain, 0, -strlen($parse->host->publicSuffix) - 1); } }
/** * Scheme should return null when scheme is not provided. * * @group issue53 * * @see https://github.com/jeremykendall/php-domain-parser/issues/53 */ public function testSchemeReturnsNullIfNotProvidedToParser() { $spec = 'google.com'; $url = $this->parser->parseUrl($spec); $this->assertNull($url->getScheme()); }
/** * @group issue18 * @see https://github.com/jeremykendall/php-domain-parser/issues/18 */ public function testFtpUrlToString() { $ftpUrl = 'ftp://ftp.somewhere.com'; $url = $this->parser->parseUrl($ftpUrl); $this->assertEquals($ftpUrl, $url->__toString()); }
<?php require_once __DIR__ . '/vendor/autoload.php'; use Pdp\PublicSuffixListManager; use Pdp\Parser; // Obtain an instance of the parser $pslManager = new PublicSuffixListManager(); $parser = new Parser($pslManager->getList()); // Parse a URL $url = $parser->parseUrl('http://*****:*****@www.pref.okinawa.jp:8080/path/to/page.html?query=string#fragment'); // Accessing elements of the URL var_dump($url); var_dump($url->__toString()); var_dump($url->getPath()); var_dump($url->getFragment()); // Getting the Host object from the URL $host = $url->getHost(); // Accessing elements of the Host var_dump($host); var_dump($host->__toString()); var_dump($host->getSubdomain()); var_dump($host->getRegistrableDomain()); var_dump($host->getPublicSuffix()); // It's possible to parse a host only, if you prefer $host = $parser->parseHost('a.b.c.cy'); // Accessing elements of the Host var_dump($host); var_dump($host->__toString()); var_dump($host->getSubdomain()); var_dump($host->getRegistrableDomain()); var_dump($host->getPublicSuffix());
/** * Get the fully qualified naked domain name. * * @param Buzz\Message\Request $request * @return string */ protected function getDomain($request) { if ($host = filter_var($this->metadata['host'], FILTER_VALIDATE_IP)) { return $host; } $manager = new PublicSuffixListManager(); $parser = new DomainParser($manager->getList()); return $parser->parseUrl($this->metadata['url'])->host->registerableDomain; }