original_string: private function checkCleanParamRule($rule, $path)
      {
          $cleanParam = $this->explodeCleanParamRule($rule);
          // check if path prefix matches the path of the url we're checking
          if (!$this->checkBasicRule($cleanParam['path'], $path)) {
              return false;
          }
          foreach ($cleanParam['param'] as $param) {
              if (!strpos($path, "?$param=")
                  && !strpos($path, "&$param=")
              ) {
                  return false;
              }
          }
          $this->log[] = 'Rule match: ' . self::DIRECTIVE_CLEAN_PARAM . ' directive';
          return true;
      }
code: private function checkCleanParamRule($rule, $path)
      {
          $cleanParam = $this->explodeCleanParamRule($rule);
          // check if path prefix matches the path of the url we're checking
          if (!$this->checkBasicRule($cleanParam['path'], $path)) {
              return false;
          }
          foreach ($cleanParam['param'] as $param) {
              if (!strpos($path, "?$param=")
                  && !strpos($path, "&$param=")
              ) {
                  return false;
              }
          }
          $this->log[] = 'Rule match: ' . self::DIRECTIVE_CLEAN_PARAM . ' directive';
          return true;
      }
code_tokens: private function checkCleanParamRule ( $ rule , $ path ) { $ cleanParam = $ this -> explodeCleanParamRule ( $ rule ) ; // check if path prefix matches the path of the url we're checking if ( ! $ this -> checkBasicRule ( $ cleanParam [ 'path' ] , $ path ) ) { return false ; } foreach ( $ cleanParam [ 'param' ] as $ param ) { if ( ! strpos ( $ path , "?$param=" ) && ! strpos ( $ path , "&$param=" ) ) { return false ; } } $ this -> log [ ] = 'Rule match: ' . self :: DIRECTIVE_CLEAN_PARAM . ' directive' ; return true ; }
docstring: Check Clean-Param rule
  
  @param  string $rule
  @param  string $path
  @return bool
docstring_tokens: Check Clean - Param rule