Автор Тема: Замена символов при выводе результата работы скрипта в броузер  (Прочитано 3637 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн jsf77

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 6
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как с помощью perl можно заменить все русские буквы на соотв. латинские эквиваленты при выводе результата работы скрипта в броузер?

Например в коде:
print "Content-type: text/vnd.wap.wml\\n\\n";
print qq~

http://www.wapforum.org/DTD/wml_1.1.xml">


Всякая лажа
 
...


~;

Нужно заменить Главная и Всякая лажа на соотв. латиницу. Записывать каждый раз строку в переменную и заменять ее например с помощью s в скрипте в несколько тысяч строк, как-то не катит. Есть ли способ как-то определить в начале скрипта, что русской А соотв. лат. А итд?


Оффлайн smoker_cannabis

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 71
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
может это подойдет :

print "Content-type: text/vnd.wap.wml\\n\\n";
my $string = qq~

http://www.wapforum.org/DTD/wml_1.1.xml">


Всякая лажа
 
...


~;

$string =~ tr/АБВГДЕЖЗ.../ABVGDEJZ.../g

э, не понял

Оффлайн soda

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Я так делал, написал первое, что в голову пришло


sub translit
(){
    
my $tshift;
#translit
    
$t =~ s/\\+/_/g;
    
$t =~ tr/абвгдеёжзийклмнопрсту/abvgdeejziiklmnoprstu/;
    
$t =~ tr/фхц/fhc/;
    
$t =~ s/ч/ch/g;
    
$t =~ s/ш/sh/g;
    
$t =~ s/щ/sch/g;
    
$t =~ s/ь//g;
    
$t =~ s/ы/y/g;
    
$t =~ s/ъ//g;
    
$t =~ s/э/e/g;
    
$t =~ s/ю/yu/g;
    
$t =~ s/я/ya/g;
#end of translit
    
return $t;
}

Использовать:
$transliterated = &translit($str);
wbr, soda
free MP3

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Я использовал unicode:

%conv=(
"А"=>"А","Б"=>"Б","В"=>"В","Г"=>"Г","Д"=>"Д",
"Е"=>"Е","Ж"=>"Ж","З"=>"З","И"=>"И","Й"=>"Й",
"К"=>"К","Л"=>"Л","М"=>"М","Н"=>"Н","О"=>"О",
"П"=>"П","Р"=>"Р","С"=>"С","Т"=>"Т","У"=>"У",
"Ф"=>"Ф","Х"=>"Х","Ц"=>"Ц","Ч"=>"Ч","Ш"=>"Ш",
"Щ"=>"Щ","Ъ"=>"Ъ","Ы"=>"Ы","Ь"=>"Ь","Э"=>"Э",
"Ю"=>"Ю","Я"=>"Я","а"=>"а","б"=>"б","в"=>"в",
"г"=>"г","д"=>"д","е"=>"е","ж"=>"ж","з"=>"з",
"и"=>"и","й"=>"й","к"=>"к","л"=>"л","м"=>"м",
"н"=>"н","о"=>"о","п"=>"п","р"=>"р","с"=>"с",
"т"=>"т","у"=>"у","ф"=>"ф","х"=>"х","ц"=>"ц",
"ч"=>"ч","ш"=>"ш","щ"=>"щ","ъ"=>"ъ","ы"=>"ы",
"ь"=>"ь","э"=>"э","ю"=>"ю","я"=>"я",);

sub convert {
    
my ($d, %c)=@_;
    while ((
$key$value) = each(%c))
      {
       
$d=~s/$key/$value/g;
      };

    return(
$d);
    };
Космическая игрушка

Оффлайн Psixolog

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 23
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
#translit->russian
 if ($type eq "tr2rus")
 {
  #парные:
  $cod=~ s/sh/"ш"/eg;
  $cod=~ s/Sh/"Ш"/eg;
  $cod=~ s/Ch/"Ч"/eg;
  $cod=~ s/ch/"ч"/eg;
  $cod=~ s/Ya/"Я"/eg;
  $cod=~ s/ya/"я"/eg;
  $cod=~ s/Yu/"Ю"/eg;
  $cod=~ s/yu/"ю"/eg;
  $cod=~ s/Yo/"Ё"/eg;
  $cod=~ s/yo/"ё"/eg;
  $cod=~ s/Zh/"Ж"/eg;
  $cod=~ s/zh/"ж"/eg;
  $cod=~ s/Sch/"Щ"/eg;
  $cod=~ s/sch/"щ"/eg;
  #одиночные:
  $cod=~ s/a/"а"/eg;
  $cod=~ s/b/"б"/eg;
  $cod=~ s/c/"к"/eg;
  $cod=~ s/d/"д"/eg;
  $cod=~ s/e/"е"/eg;
  $cod=~ s/f/"ф"/eg;
  $cod=~ s/g/"г"/eg;
  $cod=~ s/h/"х"/eg;
  $cod=~ s/i/"и"/eg;
  $cod=~ s/j/"й"/eg;
  $cod=~ s/k/"к"/eg;
  $cod=~ s/l/"л"/eg;
  $cod=~ s/m/"м"/eg;
  $cod=~ s/n/"н"/eg;
  $cod=~ s/o/"о"/eg;
  $cod=~ s/p/"п"/eg;
  $cod=~ s/q/"к"/eg;
  $cod=~ s/r/"р"/eg;
  $cod=~ s/s/"с"/eg;
  $cod=~ s/t/"т"/eg;
  $cod=~ s/u/"у"/eg;
  $cod=~ s/v/"в"/eg;
  $cod=~ s/w/"в"/eg;
  $cod=~ s/x/"х"/eg;
  $cod=~ s/y/"й"/eg;
  $cod=~ s/z/"з"/eg;

  $cod=~ s/A/"А"/eg;
  $cod=~ s/B/"Б"/eg;
  $cod=~ s/C/"К"/eg;
  $cod=~ s/E/"Е"/eg;
  $cod=~ s/F/"Ф"/eg;
  $cod=~ s/G/"Г"/eg;
  $cod=~ s/H/"Х"/eg;
  $cod=~ s/I/"И"/eg;
  $cod=~ s/J/"Й"/eg;
  $cod=~ s/K/"К"/eg;
  $cod=~ s/L/"Л"/eg;
  $cod=~ s/M/"М"/eg;
  $cod=~ s/N/"Н"/eg;
  $cod=~ s/O/"О"/eg;
  $cod=~ s/P/"П"/eg;
  $cod=~ s/Q/"К"/eg;
  $cod=~ s/R/"Р"/eg;
  $cod=~ s/S/"С"/eg;
  $cod=~ s/T/"Т"/eg;
  $cod=~ s/U/"У"/eg;
  $cod=~ s/V/"В"/eg;
  $cod=~ s/W/"В"/eg;
  $cod=~ s/X/"Х"/eg;
  $cod=~ s/Y/"Й"/eg;
  $cod=~ s/Z/"З"/eg;
  $cod=~ s/\'/"ь"/eg;
 }
 #russian->translit
 if ($type eq "rus2tr")
 {
  $cod=~ s/а/"a"/eg;
  $cod=~ s/б/"b"/eg;
  $cod=~ s/в/"v"/eg;
  $cod=~ s/г/"g"/eg;
  $cod=~ s/д/"d"/eg;
  $cod=~ s/е/"e"/eg;
  $cod=~ s/ё/"yo"/eg;
  $cod=~ s/ж/"zh"/eg;
  $cod=~ s/з/"z"/eg;
  $cod=~ s/и/"i"/eg;
  $cod=~ s/й/"y"/eg;
  $cod=~ s/к/"k"/eg;
  $cod=~ s/л/"l"/eg;
  $cod=~ s/м/"m"/eg;
  $cod=~ s/н/"n"/eg;
  $cod=~ s/о/"o"/eg;
  $cod=~ s/п/"p"/eg;
  $cod=~ s/р/"r"/eg;
  $cod=~ s/с/"s"/eg;
  $cod=~ s/т/"t"/eg;
  $cod=~ s/у/"u"/eg;
  $cod=~ s/ф/"f"/eg;
  $cod=~ s/х/"h"/eg;
  $cod=~ s/ц/"c"/eg;
  $cod=~ s/ч/"ch"/eg;
  $cod=~ s/ш/"sh"/eg;
  $cod=~ s/щ/"sch"/eg;
  $cod=~ s/ъ/"\'"/eg;
  $cod=~ s/ы/"i"/eg;
  $cod=~ s/ь/"\'"/eg;
  $cod=~ s/э/"e"/eg;
  $cod=~ s/ю/"yu"/eg;
  $cod=~ s/я/"ya"/eg;

  $cod=~ s/А/"A"/eg;
  $cod=~ s/Б/"B"/eg;
  $cod=~ s/В/"V"/eg;
  $cod=~ s/Г/"G"/eg;
  $cod=~ s/Д/"D"/eg;
  $cod=~ s/Е/"E"/eg;
  $cod=~ s/Ё/"Yo"/eg;
  $cod=~ s/Ж/"Zh"/eg;
  $cod=~ s/З/"Z"/eg;
  $cod=~ s/И/"I"/eg;
  $cod=~ s/Й/"Y"/eg;
  $cod=~ s/К/"K"/eg;
  $cod=~ s/Л/"L"/eg;
  $cod=~ s/М/"M"/eg;
  $cod=~ s/Н/"N"/eg;
  $cod=~ s/О/"O"/eg;
  $cod=~ s/П/"P"/eg;
  $cod=~ s/Р/"R"/eg;
  $cod=~ s/С/"S"/eg;
  $cod=~ s/Т/"T"/eg;
  $cod=~ s/У/"U"/eg;
  $cod=~ s/Ф/"F"/eg;
  $cod=~ s/Х/"H"/eg;
  $cod=~ s/Ц/"C"/eg;
  $cod=~ s/Ч/"Ch"/eg;
  $cod=~ s/Ш/"Sh"/eg;
  $cod=~ s/Щ/"Sch"/eg;
  $cod=~ s/Ъ/"\'"/eg;
  $cod=~ s/Ы/"I"/eg;
  $cod=~ s/Ъ/"\'"/eg;
  $cod=~ s/Э/"E"/eg;
  $cod=~ s/Ю/"Yu"/eg;
  $cod=~ s/Я/"Ya"/eg;
 }
http://holod.vip.su/cgi-bin/index.cgi - Класный сайт

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28