Guest User

Untitled

a guest
Jan 21st, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.44 KB | None | 0 0
  1. <?php
  2. class Mp3Sort {
  3.    
  4.     /**
  5.      * Самописная функция для поиска совпадений в строке по заданному шаблону
  6.      *  
  7.      * @access  public
  8.      * @param   string  $str    Строка, в которой нам необходимо найти совпадения
  9.      * @param   string  $find   Шаблон, по которому мы будем искать совпадения в строке
  10.      * @return  boolean         TRUE если нашел совпадения, FALSE если не нашел
  11.      */
  12.     function find_likes ( $str, $find )
  13.     {
  14.         $str = Mp3Sort::string_to_array($str);      //str - Строка, в которой необходимо найти совпадения
  15.         $find = Mp3Sort::string_to_array($find);    //find - Шаблон для поиска. Или Что нам нужно найти в str
  16.        
  17.         $i = $k = 0; //Обнуляем переменные
  18.         //i - указатель строки
  19.         //k - указатель шаблона
  20.        
  21.         while ( $str[ $i ] )
  22.         {
  23.             if ( $str[$i] == $find[$k] ) //Если рассматриваемая ячейка str совпадает с первой(и далее) ячейкой find
  24.             {
  25.                 $k++; //увеличиваем указатель шаблона(find) на единицу
  26.             }
  27.            
  28.             if ( $k == Mp3Sort::end_array_num( $find ) ) //Если величина указателя равна длинне шаблона, не имеет смысла искать совпадения дальше
  29.             {
  30.                 return true;   
  31.             }
  32.            
  33.             $i++;
  34.         }
  35.        
  36.         return false;
  37.     }
  38.    
  39.     /**
  40.      * Функция для преобразования строки в массив
  41.      *
  42.      * @access  public
  43.      * @param   string  $var    Строка, которую необходимо преобразовать в массив
  44.      * @return  array           Массив в виде разделенной побайтно строки  
  45.      */
  46.     function string_to_array ( $var )
  47.     {
  48.         for ( $i=0; $var[$i]; $i++ )
  49.         {
  50.             $result[$i] = $var[$i];
  51.         }
  52.        
  53.         return $result;
  54.     }
  55.    
  56.     /**
  57.      * Функция для поиска номера последней ячейки массива
  58.      *
  59.      * @access  public
  60.      * @param   array   $arr    Массив, в котором нам необходимо найти номер последнего элемента
  61.      * @return  int             Номер последней ячейки массива
  62.      */
  63.     function end_array_num ( $arr )
  64.     {
  65.         for ( $i=0; $arr[$i]; $i++ )
  66.         {
  67.             $k++;
  68.         }
  69.        
  70.         return $k;
  71.     }
  72. }
  73. ?>
Add Comment
Please, Sign In to add comment