本文整理汇总了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;
}
//.........这里部分代码省略.........
示例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)) {
//.........这里部分代码省略.........