Skip to content

Instantly share code, notes, and snippets.

@propertyhive
Created November 26, 2025 20:57
Show Gist options
  • Select an option

  • Save propertyhive/581a24cfcf8d8a840e797f4520a33464 to your computer and use it in GitHub Desktop.

Select an option

Save propertyhive/581a24cfcf8d8a840e797f4520a33464 to your computer and use it in GitHub Desktop.
BEFORE (lines 557-590):
if ( $rule['equal'] == '*' )
{
$found = true;
}
elseif (
( !isset($rule['operator']) || ( isset($rule['operator']) && $rule['operator'] == '=' ) ) && trim($value_to_check) == $rule['equal']
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == '!=' ) && trim($value_to_check) != $rule['equal']
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == 'like' ) && strpos(trim($value_to_check), $rule['equal']) !== false
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == 'begins' ) && strncmp(trim($value_to_check), $rule['equal'], strlen($rule['equal'])) === 0
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == 'ends' ) && substr(trim($value_to_check), -strlen($rule['equal'])) === $rule['equal']
)
{
$found = true;
}
AFTER:
if ( $rule['equal'] == '*' )
{
$found = true;
}
elseif (
( !isset($rule['operator']) || ( isset($rule['operator']) && $rule['operator'] == '=' ) )
&& (
( is_array($value_to_check) && (function() use ($value_to_check, $rule) {
foreach ($value_to_check as $v) {
if (trim((string)$v) == $rule['equal']) return true;
}
return false;
})() )
|| ( !is_array($value_to_check) && trim((string)$value_to_check) == $rule['equal'] )
)
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == '!=' )
&& (
( is_array($value_to_check) && (function() use ($value_to_check, $rule) {
foreach ($value_to_check as $v) {
if (trim((string)$v) == $rule['equal']) return false; // any equal ⇒ fail
}
return true; // none equal ⇒ pass
})() )
|| ( !is_array($value_to_check) && trim((string)$value_to_check) != $rule['equal'] )
)
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == 'like' )
&& (
( is_array($value_to_check) && (function() use ($value_to_check, $rule) {
foreach ($value_to_check as $v) {
if (is_scalar($v) && strpos(trim((string)$v), $rule['equal']) !== false) return true;
}
return false;
})() )
|| ( !is_array($value_to_check) && strpos(trim((string)$value_to_check), $rule['equal']) !== false )
)
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == 'begins' ) && strncmp(trim($value_to_check), $rule['equal'], strlen($rule['equal'])) === 0
)
{
$found = true;
}
elseif (
( isset($rule['operator']) && $rule['operator'] == 'ends' ) && substr(trim($value_to_check), -strlen($rule['equal'])) === $rule['equal']
)
{
$found = true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment