Esempio n. 1
0
 public function grabTagsFromText()
 {
     /**
      * @var $tag DOMElement
      */
     $filters = array('|^\\([0-9\\.]+\\)$|');
     $doc = new DOMDocument();
     @$doc->loadHTML($this->text);
     $xpath = new DOMXPath($doc);
     $tags = $xpath->query('//strong');
     foreach ($tags as $tag_name) {
         $tag_name = trim(utf8_decode($tag_name->textContent));
         if (mb_strlen($tag_name, 'utf-8') > 30) {
             continue;
         }
         foreach ($filters as $pattern) {
             if (preg_match($pattern, $tag_name)) {
                 continue 2;
             }
         }
         $tag = Tag::model()->find("name='{$tag_name}'");
         if (!$tag) {
             $tag = new Tag();
             $tag->name = $tag_name;
             $tag->save();
         }
         TagRel::createIfNotExists($tag->id, $this);
     }
 }