Advertisement
sagaida

очистка непечатных символов

Sep 15th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.71 KB | None | 0 0
  1. //$s1 содержит разрешенные символы
  2. private function clearstr($str){
  3.         $sru = 'ёйцукенгшщзхъфывапролджэячсмитьбю';
  4.         $s1 = array_merge($this->utf8_str_split($sru), $this->utf8_str_split(strtoupper($sru)), range('A', 'Z'), range('a','z'), range('0', '9'), array('&',' ','#',';','%','?',':','(',')','-','_','=','+','[',']',',','.','/','\\'));
  5.         $codes = array();
  6.         for ($i=0; $i<count($s1); $i++){
  7.                 $codes[] = ord($s1[$i]);
  8.         }
  9.         $str_s = $this->utf8_str_split($str);
  10.         for ($i=0; $i<count($str_s); $i++){
  11.                 if (!in_array(ord($str_s[$i]), $codes)){
  12.                         $str = str_replace($str_s[$i], '', $str);
  13.                 }
  14.         }
  15.         return $str;
  16.     }
  17.  
  18.  
  19.  
  20.  
  21.  
  22.     private function utf8_str_split($str) {
  23.         // place each character of the string into and array
  24.         $split=1;
  25.         $array = array();
  26.         for ( $i=0; $i < strlen( $str ); ){
  27.             $value = ord($str[$i]);
  28.             if($value > 127){
  29.                 if($value >= 192 && $value <= 223)
  30.                   $split=2;
  31.                 elseif($value >= 224 && $value <= 239)
  32.                   $split=3;
  33.                 elseif($value >= 240 && $value <= 247)
  34.                   $split=4;
  35.               }else{
  36.                 $split=1;
  37.               }
  38.             $key = NULL;
  39.             for ( $j = 0; $j < $split; $j++, $i++ ) {
  40.               $key .= $str[$i];
  41.             }
  42.           array_push( $array, $key );
  43.         }
  44.         return $array;
  45.       }
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. //пример использования
  53. $str = "тест   ";
  54. $str = clearstr($str);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement