function getRubrics($str) { $res = array(); $logger =& Log::singleton("null", "results.log", "getRubrics"); $pattern = "{<a[^>]+href=\"(.+?)\"[^>]*>(.+?)</a>}si"; if (preg_match_all($pattern, $str, $matches, PREG_SET_ORDER)) { $res = array(); foreach ($matches as $m) { $res[] = array("url" => UrlUtils::removeQuery(UrlUtils::getRealUrl($this->url, $m[1])), "name" => StrUtils::cleanString($m[2])); } } $logger->log(StrUtils::hasEmpty($res) ? "Has empty" : "OK"); $logger->log(print_r($res, true)); return $res; }
function setStatus($item) { $data = $item; unset($data["rubrics"]); $logger =& Log::singleton("null", "results.log", "setStatus"); $id = $this->rubricsData->getItemId($data["name"], $data["address"]); if ($this->rubricsData->isDataChanged($id, $data)) { $stat = "changed"; $this->rubricsData->sumNewItemsNum($this->id, 1); } else { $stat = "notchanged"; $this->rubricsData->sumNewItemsNum($this->id, -1); } $data = array($data["name"], $data["address"], $data["phone"], $data["email"]); if (StrUtils::hasEmpty($data)) { $stat .= ",notfull"; } $logger->log("Set status for {$id}: {$stat}"); $this->rubricsData->setStatus($id, $stat); $this->rubricsData->addAddressLink($this->checkMoscow($item["address"])); }