コード例 #1
0
ファイル: Quick.php プロジェクト: jacksleight/chalk
 protected function _resolveTitle(Url $url)
 {
     if (!$url->isHttp()) {
         return $url->toString();
     }
     $http = new Http(5);
     $res = $http->get($url);
     if (!$res->isSuccess()) {
         return $url->toString();
     }
     $url = $res->url();
     if (!preg_match('/^text\\/html/i', $res->header('content-type'))) {
         return $url->toString();
     }
     $doc = new DOMDocument();
     libxml_use_internal_errors(true);
     $result = $doc->loadHTML($res->body());
     libxml_use_internal_errors(false);
     if (!$result) {
         return $url->toString();
     }
     $xpath = new DOMXPath($doc);
     $els = $xpath->query('//title');
     if (!$els->length) {
         return $url->toString();
     }
     return $els->item(0)->textContent;
 }
コード例 #2
0
ファイル: UrlTest.php プロジェクト: jacksleight/coast
 public function testString()
 {
     $value = 'http://*****:*****@host:8080/path?name=value#fragment';
     $url = new Url($value);
     $this->assertEquals($value, (string) $url);
     $this->assertEquals($value, $url->toString());
     $this->assertEquals('http', $url->scheme());
     $this->assertEquals('user', $url->user());
     $this->assertEquals('pass', $url->pass());
     $this->assertEquals('host', $url->host());
     $this->assertEquals('8080', $url->port());
     $this->assertEquals('/path', $url->path());
     $this->assertEquals('name=value', $url->query());
     $this->assertEquals('fragment', $url->fragment());
     $this->assertEquals('http://*****:*****@host:8080', $url->toPart(Url::PART_PORT)->toString());
     $value = 'http://user@host/';
     $url = new Url($value);
     $this->assertEquals($value, $url->toString());
     $value = 'host/';
     $url = new Url($value);
     $this->assertEquals($value, $url->toString());
     $value = '?test=1';
     $url = new Url($value);
     $this->assertEquals($value, $url->toString());
 }