snappymail/rainloop/v/0.0.0/app/libraries/RainLoop/Plugins/Helper.php
2020-07-29 12:41:45 +02:00

59 lines
1.1 KiB
PHP

<?php
namespace RainLoop\Plugins;
class Helper
{
static public function ValidateWildcardValues(string $sString, string $sWildcardValues, string &$sFoundedValue) : bool
{
$sFoundedValue = '';
$sString = \trim($sString);
if ('' === $sString)
{
return false;
}
$sWildcardValues = \trim($sWildcardValues);
if ('' === $sWildcardValues)
{
return true;
}
if ('*' === $sWildcardValues)
{
$sFoundedValue = '*';
return true;
}
$sWildcardValues = \preg_replace('/[*]+/', '*', \preg_replace('/[\s,;]+/', ' ', $sWildcardValues));
$aWildcardValues = \explode(' ', $sWildcardValues);
foreach ($aWildcardValues as $sItem)
{
if (false === \strpos($sItem, '*'))
{
if ($sString === $sItem)
{
$sFoundedValue = $sItem;
return true;
}
}
else
{
$aItem = \explode('*', $sItem);
$aItem = \array_map(function ($sItem) {
return \preg_quote($sItem, '/');
}, $aItem);
if (\preg_match('/'.\implode('.*', $aItem).'/', $sString))
{
$sFoundedValue = $sItem;
return true;
}
}
}
return false;
}
}