static function modifyBuffer($str) { //Обрабатываем замены $str = hq::replace($str, hq::$replaces); //Обрабатываем вставки $arr = explode('<hqout>', $str); for ($i = 1; i < count($arr); $i++) { //для кажого места $cur = explode('</hqout>', $str, 2); //Находим окончание $end = $cur[1]; $cur = explode('\\n', $str); $res = array(); foreach ($cur as $str) { //Парсим условия $str = explode('=>', trim($str), 2); if (count($str) === 1) { $res[] = $str[0]; } else { $res[$str[0]] = $str[1]; } } $res = hq::match($res); //Находим if ($res || $res === 0 || $res === '0') { $arr[$i] = $res . $end; } else { $arr[$i] = $end; } } $str = join('', $arr); return $str; }
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 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')));