public function testGetKeywords() { $meta = $this->meta->getKeywords(); $this->assertInstanceOf('\\Cekurte\\WebScrapingBundle\\Selector\\SelectorInterface', $meta); $this->assertEquals('meta[name="keywords"]', $meta->getSelectorKey()); $this->assertEquals(SelectorBuilder::NODE_ATTR, $meta->getSelectorType()); $this->assertEquals('content', $meta->getSelectorAttr()); }
/** * @inheritdoc */ public function getKeywords() { $content = SelectorResolver::create()->resolve($this->crawler, $this->selector->getKeywords())->getSingleResult(); if (empty($content)) { return array(); } if (strpos($content, ',') !== false) { $keywords = explode(',', $content); } elseif (substr_count($content, ' ') > 4) { $keywords = explode(' ', $content); } else { $keywords = array($content); } array_walk($keywords, function ($item, $key) use(&$keywords) { if (is_numeric(trim($item))) { unset($keywords[$key]); } else { $item = trim(strtolower($item)); } }); return array_unique($keywords); }