LINUX.ORG.RU

ЧПУ на сайте


0

1

Добрый день. Подскажите алгоритм или регулярное выражение для преобразования русских букв в транслит. Необходимо для создания псевдостатических URL на сайте.

Приветсвуются разработки на perl :o)

убивал бы за «ЧПУ». Запомните, «программисты», для инженера (коим програамист является в первую очередь), ЧПУ - это Числовое программное управление. А то, что вам нужно - это Friendly URLs или френдли-урлы.

JFreeM ★★★☆ ()

s/ё/yo/gi;
s/я/ya/gi;
s/ж/zh/gi;
s/ц/ts/gi;
s/ч/ch/gi;
s/ш/sh/gi;
s/щ/sh/gi;
s/[ьъ]//gi;
s/ю/yu/;
tr/абвгдезиклмнопрстуфхыэ/abvgdeziklmnoprstufhye/;

Например, так.

AITap ★★★★★ ()

Тоже постоянно сбивает с толку это ЧПУ.

Вот так должно работать:

#!/usr/bin/perl

use utf8;
binmode STDOUT, ':utf8';

$url = 'Привет ЛОР!';

$simbols = {
	'ё' => 'yo', 'Ё' => 'YO',
	'ж' => 'zh', 'Ж' => 'ZH',
	'ц' => 'ts', 'Ц' => 'TS',
	'ч' => 'ch', 'Ч' => 'CH',
	'[шщ]' => 'sh', '[ШЩ]' => 'SH',
	'[ьъЬЪ]' => '',
	'ю' => 'yu', 'Ю' => 'YU',
	'я' => 'ya', 'Я' => 'YA',
};
$url =~ tr/А-ЕЗ-ХЫЭа-ез-хые/ABVGDEZIYKLMNOPRSTUFHYEabvgdeziyklmnoprstufhye/;

map { $url =~ s/$_/$simbols->{$_}/g; } keys %$simbols;

print $url, "\n";
hunt ()

ЧПУ!

O4968 	
N01 	M216 
N02 	G20 G90 G54 G40 
N03 	G50 S2000 
N04 	M01 
N05 	T0300 
N06 	G96 S854 M42 M03 M08 
N07 	G41 G00 X1.1 Z1.1 T0303 
N08 	G01 Z1.0 F.05 
N09 	X-0.002 
N10 	G00 Z1.1 
N11 	X1.0 
N12 	G01 Z0.0 F.05 
N13 	G00 X1.1 M05 M09 
N14 	G91 G28 X0 
N15 	G91 G28 Z0 
N16 	G90 M215 
N17 	M30 
% 	
static_lab ★★★★★ ()

интересно то — что все эти простенькие алгоритмы — соовсем не соответствуют стандарту транслитирации ГОСТ-7.79-2000 :-D

user_id_68054 ★★★★★ ()

Числовое программное управление не сайте? Ъ!

Zhbert ★★★★★ ()
Ответ на: комментарий от JFreeM

убивал бы за «ЧПУ». Запомните, «программисты», для инженера (коим програамист является в первую очередь), ЧПУ - это Числовое программное управление.

Хорошо, что «РТК» (роботизированный технический комплекс) на сайты не пхают :)

Slavaz ★★★★★ ()
Ответ на: комментарий от Slavaz

Да ладно. Есть и ЧПУ.
Или ты хочешь сказать, что твой сайт управляется тёплым аналоговым апачем?

Stahl ★★☆ ()
Ответ на: комментарий от JFreeM

убивал бы за «ЧПУ».

++ Я думал, ТСу нужен веб-интерфейс для управления железякой :)

А преобразование в транслит на баше делается так:

cat $1| enconv | sed -e \
    "y/йукенгзхъфывапролдэсмитьбЙУКЕНГЗХЪФЫВАПРОЛДЭСМИТЬБ/jukengzh'fyvaproldesmit'bJUKENGZH'FYVAPROLDESMIT'B/"\
    -e "s/ц/tz/g"	\
    -e "s/ш/sh/g"	\
    -e "s/щ/sch/g"	\
    -e "s/ж/zh/g"	\
    -e "s/ч/ch/g"	\
    -e "s/ю/yu/g"	\
    -e "s/я/ya/g"	\
    -e "s/ё/yo/g"	\
    -e "s/Ё/YO/g"	\
    -e "s/Ц/TZ/g"	\
    -e "s/Ш/SH/g"	\
    -e "s/Щ/SCH/g"	\
    -e "s/Ж/ZH/g"	\
    -e "s/Ч/CH/g"	\
    -e "s/Ю/YU/g"	\
    -e "s/Я/YA/g" > $1.enc

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от user_id_68054

интересно то — что все эти простенькие алгоритмы — соовсем не соответствуют стандарту транслитирации ГОСТ-7.79-2000 :-D

Да вроде бы ТС это особо и не надо.

gizzka ★★ ()
Ответ на: комментарий от true_admin

Ха-ха, скоро 2011 год, а народ всё ещё мучается с реврайтами и апачём :)))

действительно, что с ним мучиться?

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

А всё остальное делать уже внутри обработчика.

static_lab ★★★★★ ()
Ответ на: комментарий от user_id_68054

>соовсем не соответствуют стандарту транслитирации ГОСТ-7.79-2000 :-D

А ты его читал вообще? Я вот сейчас поглядел. Там мрак и ужас. Чтобы этим пользоваться нужна аццкая поддержка юникода, в 7бит там вообще ничего не влезает. ГОСТ-7.79-2000 совсем неприменим тут, не его задача обходить технические ограничения интернета.

PS транслит не нужен, ЧПУ нужны, токари 2.0 пусть идут нафиг со своими комплексами.

legolegs ★★★★★ ()
Ответ на: комментарий от legolegs

> Я вот сейчас поглядел. Там мрак и ужас. Чтобы этим пользоваться нужна аццкая поддержка юникода, в 7бит там вообще ничего не влезает.

:-)

это ты говоришь про «система А» или «система Б» ?

описывание «Система Б» начинается с 14 страниццы:
http://j.mp/c1Y71F , http://j.mp/92NVpH

user_id_68054 ★★★★★ ()
Ответ на: комментарий от legolegs

> PS транслит не нужен, ЧПУ нужны, токари 2.0 пусть идут нафиг со своими комплексами.

согласин :-)

user_id_68054 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.