Graby\Extractor\ContentExtractor::buildSiteConfig PHP Method

buildSiteConfig() public method

Returns SiteConfig instance (joined in order: exact match, wildcard, fingerprint, global, default).
public buildSiteConfig ( string $url, string $html = '', boolean $addToCache = true ) : SiteConfig
$url string
$html string
$addToCache boolean
return Graby\SiteConfig\SiteConfig
    public function buildSiteConfig($url, $html = '', $addToCache = true)
    {
        $config = $this->configBuilder->buildFromUrl($url, $addToCache);
        // load fingerprint config?
        if (true !== $config->autodetect_on_failure()) {
            return $config;
        }
        // check HTML for fingerprints
        $fingerprintHost = $this->findHostUsingFingerprints($html);
        if (false === $fingerprintHost) {
            return $config;
        }
        $configFingerprint = $this->configBuilder->buildForHost($fingerprintHost);
        if (!empty($this->config['fingerprints']) && false !== $configFingerprint) {
            $this->logger->log('debug', 'Appending site config settings from {host} (fingerprint match)', array('host' => $fingerprintHost));
            $this->configBuilder->mergeConfig($config, $configFingerprint);
            if ($addToCache && false === $this->configBuilder->getCachedVersion($fingerprintHost)) {
                $this->configBuilder->addToCache($fingerprintHost, $configFingerprint);
            }
        }
        return $config;
    }

Usage Example

Beispiel #1
0
 /**
  * Test both fingerprint and custom SiteConfig for wordpress.
  */
 public function testWithFingerPrints()
 {
     $contentExtractor = new ContentExtractor(self::$contentExtractorConfig);
     $res = $contentExtractor->buildSiteConfig('https://en.blog.wordpress.com/2015/03/23/writing-101-registration/', '<html><meta name="generator" content="WordPress.com" /></html>');
     foreach (array('title', 'body', 'strip', 'strip_id_or_class', 'strip_image_src') as $value) {
         $this->assertGreaterThan(0, count($res->{$value}), 'Check count XPatch for: ' . $value);
     }
 }