Авторизация
 Регистрация   Войти   Забыли пароль? 

translite_my_4 Заменяет русские буквы на английские, пробелы на знак подчёркивания. Для загрузки файлов

Обновлённый PHP-Fusion Bogatyr / Free CMS PHP-Fusion 7 Bogatyr / PHP-functions for files upload and download / translite_my_4 Заменяет русские буквы на английские, пробелы на знак подчёркивания. Для загрузки файлов


 Russian

translite_my_4 Replaces Russian letters to English, spaces to underscore. For uploading files

Обновлённый PHP-Fusion Bogatyr / Free CMS PHP-Fusion 7 Bogatyr / PHP-functions for files upload and download / translite_my_4 Replaces Russian letters to English, spaces to underscore. For uploading files


 English

PHP
PHP
  1. <?php
  2. function translite_my($string) {
  3.          // http://www.php.su/articles/?cat=phpdb&page=015
  4.          // "Безопасный и удобный поиск в mySQL" Автор: Дмитрий Лебедев - Источник: detail.phpclub.net
  5.          // $string = substr($string, 0, 64); // $ds['char']=64 символа пользователю будет достаточно для поиска.
  6.          // $string = preg_replace("/[^wx7F-xFFs]/", " ", $string); // Теперь каленым железом выжжем все "ненормальные" символы.
  7.         $string =  ltrim($string); // Удаляет пробелы (или другие символы) из начала строки.
  8.         $string =  rtrim($string); // Удаляет пробелы (или другие символы) из конца строки.
  9.         $rus = array(
  10.             "я", "ё", "й", "ю", "ч", "щ", "ц", "ш",
  11.             "Я", "Ё", "Й", "Ю", "Ч", "Щ", "Ц", "Ш", "Ж", "ж",
  12.             "Ь", "Ъ", "ь", "ъ",
  13.             "ї", "Ї", "є", "Є",
  14.             "у", "к", "е", "н", "г", "з", "х", "ф", "ы", "в", "а",
  15.             "п", "р", "о", "л", "д", "э", "с", "м", "и", "т", "б",
  16.             "У", "К", "Е", "Н", "Г", "З", "Х", "Ф", "Ы", "В", "А",
  17.             "П", "Р", "О", "Л", "Д", "Э", "С", "М", "И", "Т", "Б");
  18.         $eng = array(
  19.             "ya", "yo", "y", "yu", "ch", "shch", "ts", "sh",
  20.             "Ya", "Yo", "Y", "Yu", "Ch", "Shch",     "Ts", "Sh", "Zh", "zh",
  21.             "", "", "", "",      //    "'","'", "'", "'",
  22.             "i", "Yi", "e", "E",
  23.             "u", "k", "e", "n", "g", "z", "h", "f", "y", "v", "a",
  24.             "p", "r", "o", "l", "d", "е", "s", "m", "i", "t", "b",
  25.             "U", "K", "E", "N", "G", "Z", "H", "F", "Y", "V", "A",
  26.             "P", "R", "O", "L", "D", "E", "S", "M", "I", "T", "B");
  27.         $string = str_replace($rus, $eng,   $string);
  28.         $b1=array(",", "     "); // ЗАПЯТАЯ, ТАБ, КОСАЯ ЧЕРТА
  29.          // ТОЧКА ЗАПЯТАЯ И ПР СИМВОЛЫ => ,  "."=> ""=>
  30.         $b2=array("", "_");
  31.         $string = str_replace($b1, $b2,   $string);
  32.         $string =  preg_replace('/ {2,}/', ' ', $string); // php: Удалить множественные пробелы// http://krylov.org.ua/?p=927
  33.         $string = str_replace(" ", "_",   $string);
  34.         /***
  35.          функция str_replace находит значения в строке и заменяет их новой. здесь мы повторили весь алфавит, как видите  ::):
  36.          ***/
  37.         // if(!empty($string)) {
  38.             return $string;
  39.         // } // если строка не пуста, возвращаем строку
  40.         // else return("String empty/Строка пуста"); // а если пуста, орем во всю глотку xD
  41.     }
  42.     function a_z_filename($string) {
  43.         $string = strtolower($string);
  44.         $string =str_replace(".", "_", $string);
  45.          //if (preg_match('/[^A-Za-z0-9_-]/', $string)) {
  46.              //$string = translitIt($string);
  47.          //    $string = preg_replace('/[^A-Za-z0-9_-]/', '', $string);
  48.          //}
  49.         $string = preg_replace('/[^a-z0-9_-]/', '_', $string);
  50.         $string =  preg_replace('/_{2,}/', '_', $string); // ЗАМЕНЯЕТ ДВОЙНЫЕ ПОДЧЁРКИВАНИЯ НА ОДИНАРНЫЕ
  51.         $string =  ltrim($string, "_"); // Удаляет пробелы (или другие символы) из начала строки.
  52.         $string =  rtrim($string, "_"); // Удаляет пробелы (или другие символы) из конца строки.
  53.         return $string;
  54.     }
  55. //echo  "<br>translite(urlstr) == " . translite_my($urlstr0); // translite(urlstr) == odnako__tuta_vsyakaya_hren
  56. //echo  "<br> a_z_filename(translite(urlstr)) == " .  a_z_filename(translite_my($urlstr0)); // a_z_filename(translite(urlstr)) == odnako_tuta_vsyakaya_hren
  57. //    $str = strtolower($str);    // в нижний регистр
  58. //    $str = preg_replace('~[^-a-z0-9_]+~u', '-', $str); // заменям все ненужное нам на "-"
  59. //    $str = trim($str, "-"); // удаляем начальные и конечные '-'
  60. $utf8sym = array(   "Ў",    "°",    "Ѓ",    "џ",    "‡",    "Ђ",    "њ",    "›",    "Ћ",    "ґ",    "»",    "°",    "ќ",    "ђ",    "ў",    "ћ",    "Рє",    "µ",    "ѓ" ,    "°",    "Ў",    "Р°С",    "Ѓ",    "°",    "џ",    "‡Р",    "Р№",    "Ђ",    "њ",    "Р›С",    "Ћ",    "Рґ",    "Рї",    "Р»",    "Р°Р",    "Рќ",    "Рђ",    "Рў",    "Рћ",    "Рє",    "Рµ",    "Сѓ" );
  61. function auto_charset($text, $auto='CP1251') {
  62. global $utf8sym;
  63. $charset="";
  64. $i=0;
  65. while ($i<count($utf8sym) ) {
  66.     if ( @strpos( "_".$text, $utf8sym[$i], 0 ) > 0 )
  67.         $charset = "utf-8";
  68.     $i++;
  69. }
  70.      //if ($charset=='utf-8' AND $auto)    $text=iconv('UTF-8', 'CP1251', $text);
  71.     if ($charset=='utf-8' AND $auto)    $text=iconv('UTF-8', $auto, $text);
  72.     return $text;
  73. }
  74. //=======================================
  75. function clean_filename($upl_name) {
  76.     $upl_name = auto_charset($upl_name, 'CP1251');
  77.      // $upl_name = $_FILES['Filedata']['name'];
  78.     $newname1 =  translite_my($upl_name); // имя без пробелов но с точками
  79.      // $file_name = substr($upload['name'][$i], 0, strrpos($upload['name'][$i], "."));
  80.      // $file_ext = strrchr($upload['name'][$i],".");
  81.      // $file_name = substr($newname1, 0, strrpos($newname1, "."));
  82.      // если несколько точек не работает
  83. $file_name = substr($newname1, 0, strripos($newname1, "."));
  84. // $file_name = substr($file_name, 0, 64);  //  символа пользователю будет достаточно для поиска.
  85. // http://www.php.su/functions/?strripos
  86. //     strripos --  Возвращает позицию последнего вхождения подстроки без учета регистра
  87. // $haystack = 'ababcd'; $needle   = 'aB'; $pos      = strripos($haystack, $needle);    Последнее (aB) найдено в (ababcd) в позиции (2)
  88. // http://www.php.su/functions/?strrpos
  89. //    strrpos --  Возвращает позицию последнего вхождения символа
  90. // int strrpos ( string haystack, string needle [, int offset] )
  91. // необязательный аргумент offset позволяет указать, с какого по счету символа строки haystack начинать поиск. Отрицательное значение предписывает прекратить поиск при достижении определенной позиции до конца строки.
  92. $file_ext = strrchr($newname1, "."); // Возвращает подстроку строки haystack начиная с последнего вхождения needle до конца строки.  Если подстрока needle не найдена, возвращает FALSE.
  93.      //echo " <br> =file_name=" . $file_name;
  94.      // echo " <br> =file_ext=" . $file_ext;
  95.     $newname2 =  substr(a_z_filename($file_name), 0, 64) . str_replace(".jpeg", ".jpg", strtolower($file_ext));
  96.     return $newname2;
  97. }
  98. //=======================================
  99. // how to call
  100. // вызывать так:
  101. $new_filename = clean_filename($old_filename);
  102. ?>
Добавить комментарий

Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
HTML-code and BB-code for blogs and forums

<a href="https://php-fusion.vveb.ws/php-fusion.php?id=3">translite_my_4 Заменяет русские буквы на английские, пробелы на знак подчёркивания. Для загрузки файлов</a>


[url=https://php-fusion.vveb.ws/php-fusion.php?id=3]translite_my_4 Заменяет русские буквы на английские, пробелы на знак подчёркивания. Для загрузки файлов[/url]

Language: Default
 
Код для PHP-Fusion