Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 26.12.2009, 23:34   #1
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 214
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию Преобразование русских символов в латиницу

Собственно имеется скрипт который читает коталог и выводит на экран имеющиеся в нем каталоги, а из них html файлы.
Нужно что бы в каталоге было возможно создавать каталоги с русскими символами а тоесть на экране я вижу название каталога "Тест" а прие го открытии скрипт его преобразовывал в латиницу и в урле уже было test
avgaz вне форума   Ответить с цитированием
Старый 27.12.2009, 00:31   #2
Специалист
 
Аватар для Taldyk
 
Регистрация: 02.03.2008
Адрес: Германия
Сообщений: 477
Вес репутации: 220
Taldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордится
Отправить сообщение для Taldyk с помощью ICQ
По умолчанию

Чего спросить-то хотели?
Сформулируйте вопрос нормально.
Taldyk вне форума   Ответить с цитированием
Старый 27.12.2009, 01:34   #3
Эксперт
 
Аватар для Anadonam
 
Регистрация: 29.10.2009
Адрес: Вологда and SSHA
Сообщений: 3,897
Вес репутации: 353
Anadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущееAnadonam - прекрасное будущее
Отправить сообщение для Anadonam с помощью ICQ
По умолчанию

avgaz, ну вобщето если вы знаете хоть один язык програмирования то и сами можете написать такой преобразователь текста ..

- ну а как в каталог вставлять каталог я если чесно тож не понял )..
Anadonam вне форума   Ответить с цитированием
Старый 27.12.2009, 09:59   #4
Специалист
 
Регистрация: 23.05.2007
Сообщений: 310
Вес репутации: 214
avgaz скоро станет известенavgaz скоро станет известен
По умолчанию

По пытаюсь обьяснит понятней у slaed cms есть модуль Html_Content позволяет отображать html файлы внутри системы. Работает по принципу: читает необходимую директорию file выводит из неё на экран все директории в file и фалы. и получается что если деректория названа на русском то в браузере выходит так
Html_Content&op=page&folder=%F2%E5%F1%F2&contentsi te=Demo_File_Module.html
то есть русские символы преобразуются в %F2%E5%F1%F2 мне нужно что бы они преобразовались в латиницу но директория на сервере так и осталась на русском.
avgaz вне форума   Ответить с цитированием
Старый 27.12.2009, 12:20   #5
Специалист
 
Аватар для pma87
 
Регистрация: 12.05.2008
Адрес: Адрес: Адрес:
Сообщений: 119
Вес репутации: 200
pma87 - как роза среди колючекpma87 - как роза среди колючекpma87 - как роза среди колючекpma87 - как роза среди колючек
По умолчанию

PHP код:
function translitIt($filename)
{
$transsimvol = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"zh","З"=>"z","И"=>"i",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"y","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya",

"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y",
"к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o",
"п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u",
"ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh",
"щ"=>"sch","ъ"=>"","ы"=>"y","ь"=>"","э"=>"e",
"ю"=>"yu","я"=>"ya"
);
return 
strtr($filename,$transsimvol);

в коде вызовите $filename=translitIt($filename); и вся кирилица заменится на латиницу.
pma87 вне форума   Ответить с цитированием
Старый 27.12.2009, 12:30   #6
Мастер
 
Аватар для DNA
 
Регистрация: 23.09.2008
Адрес: СССР
Сообщений: 683
Вес репутации: 229
DNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущееDNA - прекрасное будущее
Отправить сообщение для DNA с помощью ICQ
По умолчанию

pma87, а зачем в массиве буквы в верхнем регистре? Не лучше ли strtolower'ом предварительно $filename обрабатывать?
DNA вне форума   Ответить с цитированием
Старый 27.12.2009, 12:39   #7
Специалист
 
Аватар для EndyVelvet
 
Регистрация: 19.01.2009
Адрес: вебмастеринг
Сообщений: 386
Вес репутации: 200
EndyVelvet - просто великолепная личностьEndyVelvet - просто великолепная личностьEndyVelvet - просто великолепная личностьEndyVelvet - просто великолепная личностьEndyVelvet - просто великолепная личностьEndyVelvet - просто великолепная личность
По умолчанию

Цитата:
Сообщение от DNA Посмотреть сообщение
pma87, а зачем в массиве буквы в верхнем регистре? Не лучше ли strtolower'ом предварительно $filename обрабатывать?
Потому что иногда бывает так
EndyVelvet вне форума   Ответить с цитированием
Старый 27.12.2009, 12:40   #8
Старый зулус
 
Аватар для slavs™
 
Регистрация: 18.02.2008
Адрес: КваЗулу-Наталь
Сообщений: 1,649
Вес репутации: 338
slavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущее
По умолчанию

pma87, громоздко, уж лучше так:
PHP код:
function transliterate($st) {
  
$st strtr($st
    
"абвгдежзийклмнопрстуфыэАБВГДЕЖЗИЙКЛМНОПРСТУФЫЭ",
    
"abvgdegziyklmnoprstufieABVGDEGZIYKLMNOPRSTUFIE"
  
);
  
$st strtr($st, array(
    
'ё'=>"yo",    'х'=>"h",  'ц'=>"ts",  'ч'=>"ch"'ш'=>"sh",  
    
'щ'=>"shch",  'ъ'=>'',   'ь'=>'',    'ю'=>"yu"'я'=>"ya",
    
'Ё'=>"Yo",    'Х'=>"H",  'Ц'=>"Ts",  'Ч'=>"Ch"'Ш'=>"Sh",
    
'Щ'=>"Shch",  'Ъ'=>'',   'Ь'=>'',    'Ю'=>"Yu"'Я'=>"Ya",
  ));
  return 
$st;

slavs™ вне форума   Ответить с цитированием
Старый 27.12.2009, 12:40   #9
Специалист
 
Аватар для pma87
 
Регистрация: 12.05.2008
Адрес: Адрес: Адрес:
Сообщений: 119
Вес репутации: 200
pma87 - как роза среди колючекpma87 - как роза среди колючекpma87 - как роза среди колючекpma87 - как роза среди колючек
По умолчанию

Цитата:
Сообщение от DNA Посмотреть сообщение
pma87, а зачем в массиве буквы в верхнем регистре? Не лучше ли strtolower'ом предварительно $filename обрабатывать?
Можно, но сам не проверял как strtolower будет с кириллицей работать. Тогда можно так:

PHP код:
function translitIt($filename

$transsimvol = array(
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d"
"е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y"
"к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o"
"п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u"
"ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh"
"щ"=>"sch","ъ"=>"","ы"=>"y","ь"=>"","э"=>"e"
"ю"=>"yu","я"=>"ya" 
); 
return 
strtr($filename,$transsimvol); 

а вызвать $filename=strtolower(translitIt($filename));
pma87 вне форума   Ответить с цитированием
Старый 27.12.2009, 12:42   #10
Старый зулус
 
Аватар для slavs™
 
Регистрация: 18.02.2008
Адрес: КваЗулу-Наталь
Сообщений: 1,649
Вес репутации: 338
slavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущееslavs™ - прекрасное будущее
По умолчанию

Цитата:
Сообщение от pma87 Посмотреть сообщение
Можно, но сам не проверял как strtolower будет с кириллицей работать. Тогда можно так:
strtolower не всегда работает с кирилицей, поэтому лучше сделать свою функцию типа:
PHP код:
function lower_key($st){
$st=strtr($st,
"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯABCDEFGHIJKLMNOPQRSTUVWXYZ",
"абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz"
);return $st;

slavs™ вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из-за русских тегов ссылки не отображаются sander85 Вопросы от новичков 5 08.09.2009 05:04
Ссылки без русских букв Sandsstorm Пожелания пользователей системы 9 14.07.2009 14:59
Преобразование ГС в СДЛ. Нюансик. calatilo Вопросы от новичков 2 15.02.2009 13:57
я хренею с этих русских..!! timtroll Курилка 10 13.06.2008 01:21


Часовой пояс GMT +3, время: 05:06.