当前位置: 首页>>代码示例>>PHP>>正文


PHP fORMDatabase::parseSearchTerms方法代码示例

本文整理汇总了PHP中fORMDatabase::parseSearchTerms方法的典型用法代码示例。如果您正苦于以下问题:PHP fORMDatabase::parseSearchTerms方法的具体用法?PHP fORMDatabase::parseSearchTerms怎么用?PHP fORMDatabase::parseSearchTerms使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在fORMDatabase的用法示例。


在下文中一共展示了fORMDatabase::parseSearchTerms方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: checkCondition

 /**
  * Checks to see if a record matches a condition
  * 
  * @internal
  * 
  * @param  string $operator  The record to check
  * @param  mixed  $value     The value to compare to
  * @param  mixed $result     The result of the method call(s)
  * @return boolean  If the comparison was successful
  */
 private static function checkCondition($operator, $value, $result)
 {
     $was_array = is_array($value);
     if (!$was_array) {
         $value = array($value);
     }
     foreach ($value as $i => $_value) {
         if (is_object($_value)) {
             if ($_value instanceof fActiveRecord) {
                 continue;
             }
             if (method_exists($_value, '__toString')) {
                 $value[$i] = $_value->__toString();
             }
         }
     }
     if (!$was_array) {
         $value = $value[0];
     }
     $was_array = is_array($result);
     if (!$was_array) {
         $result = array($result);
     }
     foreach ($result as $i => $_result) {
         if (is_object($_result)) {
             if ($_result instanceof fActiveRecord) {
                 continue;
             }
             if (method_exists($_result, '__toString')) {
                 $result[$i] = $_result->__toString();
             }
         }
     }
     if (!$was_array) {
         $result = $result[0];
     }
     if ($operator == '~' && !is_array($value) && is_array($result)) {
         $value = fORMDatabase::parseSearchTerms($value, TRUE);
     }
     if (in_array($operator, array('~', '&~', '!~', '^~', '$~'))) {
         settype($value, 'array');
         settype($result, 'array');
     }
     switch ($operator) {
         case '&~':
             foreach ($value as $_value) {
                 if (fUTF8::ipos($result[0], $_value) === FALSE) {
                     return FALSE;
                 }
             }
             break;
         case '~':
             // Handles fuzzy search on multiple method calls
             if (count($result) > 1) {
                 foreach ($value as $_value) {
                     $found = FALSE;
                     foreach ($result as $_result) {
                         if (fUTF8::ipos($_result, $_value) !== FALSE) {
                             $found = TRUE;
                         }
                     }
                     if (!$found) {
                         return FALSE;
                     }
                 }
                 break;
             }
             // No break exists since a ~ on a single method call acts
             // similar to the other LIKE operators
         // No break exists since a ~ on a single method call acts
         // similar to the other LIKE operators
         case '!~':
         case '^~':
         case '$~':
             if ($operator == '$~') {
                 $result_len = fUTF8::len($result[0]);
             }
             foreach ($value as $_value) {
                 $pos = fUTF8::ipos($result[0], $_value);
                 if ($operator == '^~' && $pos === 0) {
                     return TRUE;
                 } elseif ($operator == '$~' && $pos === $result_len - fUTF8::len($_value)) {
                     return TRUE;
                 } elseif ($pos !== FALSE) {
                     return $operator != '!~';
                 }
             }
             if ($operator != '!~') {
                 return FALSE;
             }
//.........这里部分代码省略.........
开发者ID:mrjwc,项目名称:printmaster,代码行数:101,代码来源:fActiveRecord.php

示例2: checkCondition

 /**
  * Checks to see if a record matches a condition
  * 
  * @internal
  * 
  * @param  string $operator  The record to check
  * @param  mixed  $value     The value to compare to
  * @param  mixed $result     The result of the method call(s)
  * @return boolean  If the comparison was successful
  */
 private static function checkCondition($operator, $value, $result)
 {
     $was_array = is_array($value);
     if (!$was_array) {
         $value = array($value);
     }
     foreach ($value as $i => $_value) {
         if (is_object($_value)) {
             if ($_value instanceof fActiveRecord) {
                 continue;
             }
             if (method_exists($_value, '__toString')) {
                 $value[$i] = $_value->__toString();
             }
         }
     }
     if (!$was_array) {
         $value = $value[0];
     }
     $was_array = is_array($result);
     if (!$was_array) {
         $result = array($result);
     }
     foreach ($result as $i => $_result) {
         if (is_object($_result)) {
             if ($_result instanceof fActiveRecord) {
                 continue;
             }
             if (method_exists($_result, '__toString')) {
                 $result[$i] = $_result->__toString();
             }
         }
     }
     if (!$was_array) {
         $result = $result[0];
     }
     $match_all = $operator == '&~';
     $negate_like = $operator == '!~';
     switch ($operator) {
         case '&~':
         case '!~':
         case '~':
             if (!$match_all && !$negate_like && !is_array($value) && is_array($result)) {
                 $value = fORMDatabase::parseSearchTerms($value, TRUE);
             }
             settype($value, 'array');
             settype($result, 'array');
             if (count($result) > 1) {
                 foreach ($value as $_value) {
                     $found = FALSE;
                     foreach ($result as $_result) {
                         if (fUTF8::ipos($_result, $_value) !== FALSE) {
                             $found = TRUE;
                         }
                     }
                     if (!$found) {
                         return FALSE;
                     }
                 }
             } else {
                 $found = FALSE;
                 foreach ($value as $_value) {
                     if (fUTF8::ipos($result[0], $_value) !== FALSE) {
                         $found = TRUE;
                     } elseif ($match_all) {
                         return FALSE;
                     }
                 }
                 if (!$negate_like && !$found || $negate_like && $found) {
                     return FALSE;
                 }
             }
             break;
         case '=':
             if ($value instanceof fActiveRecord && $result instanceof fActiveRecord) {
                 if (get_class($value) != get_class($result) || !$value->exists() || !$result->exists() || self::hash($value) != self::hash($result)) {
                     return FALSE;
                 }
             } elseif (is_array($value) && !in_array($result, $value)) {
                 return FALSE;
             } elseif (!is_array($value) && $result != $value) {
                 return FALSE;
             }
             break;
         case '!':
             if ($value instanceof fActiveRecord && $result instanceof fActiveRecord) {
                 if (get_class($value) == get_class($result) && $value->exists() && $result->exists() && self::hash($value) == self::hash($result)) {
                     return FALSE;
                 }
             } elseif (is_array($value) && in_array($result, $value)) {
//.........这里部分代码省略.........
开发者ID:philip,项目名称:flourish,代码行数:101,代码来源:fActiveRecord.php


注:本文中的fORMDatabase::parseSearchTerms方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。