Функция для фильтрования строки с помощью расширения Ctype

  1. /**
  2.  * Функция для фильтрования строки с помощью расширения Ctype
  3.  * @param string $string строка которую нужно отфильтровать
  4.  * @param string $callback одна из функций Ctype без префикса ctype_
  5.  * @return string
  6.  * @author Jahak
  7.  */
  8. function ctype($string, $callback)
  9. {
  10.     if (in_array($callback, [
  11.                 'alnum', 'alpha', 'cntrl', 'digit',
  12.                 'graph', 'lower', 'print', 'punct', 'space',
  13.                 'upper', 'xdigit'
  14.             ]))
  15.     {
  16.         $return = [];
  17.         $callback = 'ctype_' . $callback;
  18.         foreach (str_split($string) as $value)
  19.         {
  20.             if ($callback($value))
  21.             {
  22.                 $return[] = $value;
  23.             }
  24.         }
  25.         return implode($return);
  26.     }
  27. }
:)
  1. //Example
  2. $test = "qwJe548P4r\r21B5r8\nHiuQ8\t*7^%$$#@";
  3. foreach (['alnum', 'alpha', 'cntrl', 'digit', 'graph', 'lower', 'print', 'punct', 'space', 'upper', 'xdigit'] as $value)
  4. {
  5.     echo "<b>$value</b><br>";
  6.     echo var_export(ctype($test, $value), true) . '<br>';
  7. }

Реклама

Мы в соцсетях

tw tg yt gt