Пример #1
0
 protected function parse()
 {
     /*
     $exp_ip			= "(%1\$s)\\.(%1\$s)\\.(%1\$s)\\.(%1\$s)";
     $exp_0_199		= "(?:1?\d?\d)";
     $exp_200_255	= "(?:2(?:5[0-5]|[0-4]\d))";
     $exp_0_255		= sprintf("(?:%s|%s)", $exp_0_199, $exp_200_255);
     
     $re = new regex(h\string::format($exp_ip, $exp_0_255));
     */
     $re = new regex(RE_INET4);
     if (!$re->match($this->literal)) {
         throw new exception(sprintf(self::ERR_BAD_IP, $this->literal));
     }
     $refs = $re->get_pieces_by_match(0);
     $this->words[0] = $this->literal->slice($refs[4][0], $refs[4][1])->as_integer();
     $this->words[1] = $this->literal->slice($refs[3][0], $refs[3][1])->as_integer();
     $this->words[2] = $this->literal->slice($refs[2][0], $refs[2][1])->as_integer();
     $this->words[3] = $this->literal->slice($refs[1][0], $refs[1][1])->as_integer();
     $this->raw = $this->words[0] + ($this->words[1] << 8) + ($this->words[2] << 16) + ($this->words[3] << 24);
 }
Пример #2
0
 function set_check_request()
 {
     $arReturn = array();
     foreach ($this->data as $data) {
         if (isset($data['validate']) && isset($data['validate']['regex']) && isset($data['validate']['errormsg']) && isset($data['object']['attrib']['name']) && count($this->request) > 0) {
             // set vars
             $regex = $data['validate']['regex'];
             $name = $data['object']['attrib']['name'];
             $request = '$this->request' . $this->string_to_index($name);
             if (eval("return isset({$request});") && isset($regex) && $regex != '') {
                 $matches = regex::match($regex, eval("return {$request};"));
                 if (!$matches) {
                     $this->check_request[$name] = $data['validate']['errormsg'];
                 }
             } elseif (eval("return !isset({$request});") && isset($data['required']) && $data['required'] == true) {
                 $this->check_request[$name] = 'null';
             }
         }
     }
 }