Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: сравнение строк

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
daglas1
Отправлено: 09 Июля, 2012 - 18:04:23
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




Всем привет.
Использую для сравнения строк вот такую конструкцию
$var1 = similar_text($filename, $str2, &$tmp);
Эта функция мне нужна для того чтобы сравнивать файлы хранящиеся на хостинге а также линки на них в БД. Ибо бывают конфликты с регистром названий и возможны лишние пробелы. Потом делаю филтрацию
if ($tmp>40) {$raz=1;}
отсеиваю те случае когда процент сходства имен файлов меньше 40 процентов.
Вот только данная функция не слишком адекватные рещульаты выдвет при работае с кирилицей. То большие вероятности то мизерные. Может стоит делать urlencode?
 
 Top
caballero
Отправлено: 09 Июля, 2012 - 19:24:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




если там кирилица нужно использовать mb_string
иначе как минимум будет возвращать неверную длину в символах


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
daglas1
Отправлено: 11 Июля, 2012 - 00:45:23
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Июль 2011  


Помог: 1 раз(а)




caballero пишет:
если там кирилица нужно использовать mb_string
иначе как минимум будет возвращать неверную длину в символах

Ок, пасибо я гуглил буду тестить. А пробовал конверитьровать в транслит но ничего не получилось толкового. Нагуглил две функции, пробовал из применить к тексту но они его совершенно не транслитерировали а оставляли без изменений
Вот код фукнций
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function translitIt($str)
  4. {
  5.     $tr = array(
  6.         "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
  7.         "Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
  8.         "Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
  9.         "О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
  10.         "У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
  11.         "Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
  12.         "Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
  13.         "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
  14.         "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
  15.         "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
  16.         "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
  17.         "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
  18.         "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"
  19.     );
  20.     return strtr($str,$tr);
  21. }
  22. //==============
  23. function rus2translit($string) {
  24.     $converter = array(
  25.         'а' => 'a',   'б' => 'b',   'в' => 'v',
  26.         'г' => 'g',   'д' => 'd',   'е' => 'e',
  27.         'ё' => 'e',   'ж' => 'zh',  'з' => 'z',
  28.         'и' => 'i',   'й' => 'y',   'к' => 'k',
  29.         'л' => 'l',   'м' => 'm',   'н' => 'n',
  30.         'о' => 'o',   'п' => 'p',   'р' => 'r',
  31.         'с' => 's',   'т' => 't',   'у' => 'u',
  32.         'ф' => 'f',   'х' => 'h',   'ц' => 'c',
  33.         'ч' => 'ch',  'ш' => 'sh',  'щ' => 'sch',
  34.         'ь' => '\'',  'ы' => 'y',   'ъ' => '\'',
  35.         'э' => 'e',   'ю' => 'yu',  'я' => 'ya',
  36.        
  37.         'А' => 'A',   'Б' => 'B',   'В' => 'V',
  38.         'Г' => 'G',   'Д' => 'D',   'Е' => 'E',
  39.         'Ё' => 'E',   'Ж' => 'Zh',  'З' => 'Z',
  40.         'И' => 'I',   'Й' => 'Y',   'К' => 'K',
  41.         'Л' => 'L',   'М' => 'M',   'Н' => 'N',
  42.         'О' => 'O',   'П' => 'P',   'Р' => 'R',
  43.         'С' => 'S',   'Т' => 'T',   'У' => 'U',
  44.         'Ф' => 'F',   'Х' => 'H',   'Ц' => 'C',
  45.         'Ч' => 'Ch',  'Ш' => 'Sh',  'Щ' => 'Sch',
  46.         'Ь' => '\'',  'Ы' => 'Y',   'Ъ' => '\'',
  47.         'Э' => 'E',   'Ю' => 'Yu',  'Я' => 'Ya',
  48.     );
  49.     return strtr($string, $converter);
  50. }
  51.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB