Re: [Lug-bg] bash script конвертиране на кирилица към латиница !
- Subject: Re: [Lug-bg] bash script конвертиране на кирилица към латиница !
- From: Georgi Chorbadzhiyski <gf@xxxxxxxxxxx>
- Date: Wed, 06 Apr 2011 12:16:03 +0300
- Organization: Unix Solutions Ltd. (http://unixsol.org)
Around 04/06/2011 11:47 AM, Ivaylo Toshev scribbled:
> Здравейте,
>
> Много спешно ми трябва някакъв инструмент, с който мога под bash да
> конвертирам кирилица към латиница. Най-добре поточно, през | .
#!/usr/bin/env php
<?php
error_reporting(E_ALL);
function valid_utf8($input) {
return @iconv("UTF-8", "UTF-8", $input) == $input;
}
function cyr_to_lat($data) {
if (preg_match('/Ж[а-я]/',$data)) { $data = str_replace('Ж','Zh',$data); } else { $data = str_replace('Ж','ZH',$data); }
if (preg_match('/Ч[а-я]/',$data)) { $data = str_replace('Ч','Ch',$data); } else { $data = str_replace('Ч','CH',$data); }
if (preg_match('/Ш[а-я]/',$data)) { $data = str_replace('Ш','Sh',$data); } else { $data = str_replace('Ш','SH',$data); }
if (preg_match('/Щ[а-я]/',$data)) { $data = str_replace('Щ','Sht',$data); } else { $data = str_replace('Щ','SHT',$data); }
if (preg_match('/Ю[а-я]/',$data)) { $data = str_replace('Ю','Iu',$data); } else { $data = str_replace('Ю','IU',$data); }
if (preg_match('/Я[а-я]/',$data)) { $data = str_replace('Я','Ia',$data); } else { $data = str_replace('Я','IA',$data); }
$data = strtr($data,'АБВГДЕЗИЙКЛМНОПРСТУФХЦЪЬЫЭЦ','ABVGDEZIYKLMNOPRSTUFHCAAAAC');
$data = str_replace('ж','zh',$data);
$data = str_replace('ч','ch',$data);
$data = str_replace('ш','sh',$data);
$data = str_replace('щ','sht',$data);
$data = str_replace('ю','iu',$data);
$data = str_replace('я','ja',$data);
$data = strtr($data,'абвгдезийклмнопрстуфхьъьыэц','abvgdeziyklmnoprstufhcaaaac');
return $data;
}
$f = fopen("php://stdin", "r");
while ($s = fread($f, 4096)) {
if (valid_utf8($s))
print cyr_to_lat(iconv("UTF-8", "Windows-1251", $s));
else
print cyr_to_lat($s);
}
fclose($f);
?>
Записваш горното като cyr2lat.php
и после ползваш:
echo "Кривата Уфтса, прескочи куцото Куче на Юруш!" | cyr2lat.php
--
Georgi Chorbadzhiyski
http://georgi.unixsol.org/
#!/usr/bin/env php
<?php
error_reporting(E_ALL);
function valid_utf8($input) {
return @iconv("UTF-8", "UTF-8", $input) == $input;
}
function cyr_to_lat($data) {
if (preg_match('/Æ[à-ÿ]/',$data)) { $data = str_replace('Æ','Zh',$data); } else { $data = str_replace('Æ','ZH',$data); }
if (preg_match('/×[à-ÿ]/',$data)) { $data = str_replace('×','Ch',$data); } else { $data = str_replace('×','CH',$data); }
if (preg_match('/Ø[à-ÿ]/',$data)) { $data = str_replace('Ø','Sh',$data); } else { $data = str_replace('Ø','SH',$data); }
if (preg_match('/Ù[à-ÿ]/',$data)) { $data = str_replace('Ù','Sht',$data); } else { $data = str_replace('Ù','SHT',$data); }
if (preg_match('/Þ[à-ÿ]/',$data)) { $data = str_replace('Þ','Iu',$data); } else { $data = str_replace('Þ','IU',$data); }
if (preg_match('/ß[à-ÿ]/',$data)) { $data = str_replace('ß','Ia',$data); } else { $data = str_replace('ß','IA',$data); }
$data = strtr($data,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÚÜÛÝÖ','ABVGDEZIYKLMNOPRSTUFHCAAAAC');
$data = str_replace('æ','zh',$data);
$data = str_replace('÷','ch',$data);
$data = str_replace('ø','sh',$data);
$data = str_replace('ù','sht',$data);
$data = str_replace('þ','iu',$data);
$data = str_replace('ÿ','ja',$data);
$data = strtr($data,'àáâãäåçèéêëìíîïðñòóôõüúüûýö','abvgdeziyklmnoprstufhcaaaac');
return $data;
}
$f = fopen("php://stdin", "r");
while ($s = fread($f, 4096)) {
if (valid_utf8($s))
print cyr_to_lat(iconv("UTF-8", "Windows-1251", $s));
else
print cyr_to_lat($s);
}
fclose($f);
?>
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|