static function parseKey($str) { static $cache = array(); if (isset($cache[$str])) { return $cache[$str]; } $words = array(); $arr = explode(' ', $str); foreach ($arr as $cur) { if ($cur !== '') { if (!isset(hq::$stopWords[$cur])) { $cur = hq::dropPlus($cur); if ($cur !== '') { $words[] = array(hq::morf($cur), '!' . hq::dropSyntax($cur)); } } } } $cache[$str] = $words; return $words; }
static function replace($str, $arr) { $res = array(); foreach ($arr as $key => $data) { $cur = hq::match($data); if ($cur || $cur === '') { $res[$key] = $cur; } } //echo '$res='; //print_r($res); //print_r(array_values($res)); //echo "str=$str"; //return str_replace('Комнаты','Кондиционеры 2334',$str); return str_replace(array_keys($res), array_values($res), $str); }
var_dump(HQ::match(array('кондиционеры москва' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('кондиционер москве' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('кондиционер в москве' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('кондиционер' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('москвы' => true))); echo '<br />Must be true '; var_dump(HQ::match(array('Москвы' => true))); echo '<br />Must be false '; var_dump(HQ::match(array('бла' => true))); echo '<br />Must be false '; var_dump(HQ::match(array('береза' => true))); echo '<br />Must be false '; var_dump(HQ::match(array('москва береза' => true))); echo '<br />Must be false '; var_dump(HQ::match(array('кондиционер +в москве' => true))); echo '<h1>Replace</h1>'; echo hq::replace('Комнаты в Москве недорого!', array('Комнаты' => array('Кондиционеры'))); echo '<h1>defineGetParamAnyRef</h1>'; hq::defineGetParamAnyRef(array('москва' => array('order_by' => 'price'))); print_r(HQ::$definedGetParams); echo '<h1>redirectFromAnyPageOnce</h1>'; hq::redirectFromAnyPageOnce(array('квартиры' => '/flat.php', 'москва' => '/msk.php')); hq::redirectFromAnyPageOnce(array('москва' => '?x=1')); echo '<h1>redirectOnce</h1>'; hq::redirectOnce(array('/' => array('москва' => '?x=1'))); hq::redirectOnce(array('/page' => array('москва' => '?x=1'), '/' => array('москва' => '?x=2')));