|
| |
|
|
| |
для: provodnik
(27.01.2007 в 01:24)
| | | Если на хосте пхп 5 то не используй strtolower,юзай mb_convert_case($var, MB_CASE_LOWER, "CP1251");
У меня такое было strtolower просто съедало кирилицу...
Вот нечего делать было...
function trans($name)
{
$symbs = array
(
"а" => "a","б" => "b","в" => "v","г" => "g","д" => "d",
"е" => "e","ё" => "e","ж" => "zh","з" => "z","и" => "i",
"й" => "j","к" => "k","л" => "l","м" => "m","н" => "n",
"о" => "o","п" => "p","р" => "r","с" => "s","т" => "t",
"у" => "u","ф" => "f","х" => "h","ц" => "ts","ч" => "ch",
"ш" => "sh","щ" => "sch","ъ" => "","ы" => "y","ь" => "",
"э" => "e","ю" => "yu","я" => "ya", " " => "-","_"=>"-","'"=>"");
return strtr((mb_convert_case($name, MB_CASE_LOWER, "CP1251")),$symbs);
}
$yo="приDет";
print trans($yo);
|
| |
| |
|
|
| |
|
|
| |
для: provodnik
(27.01.2007 в 01:24)
| | | Попробуй в начале файла setlocale(LC_ALL, ''); setlocale(LC_CTYPE, "ru_RU.cp1251"); | |
| |
|
|
| |
|
|
| | Приятного времени суток.
У меня есть ф-ия, которая транлитерует строку, для последующего занесения в базу и для работы с сылками:
<?
function translit($string) {
// переводим в нижний регистр
$string = strtolower($string);
setlocale(ru_RU.cp1251);
// удаляем лишние символы
$string = preg_replace('{[^\w ]}s', '', $string);
$string = preg_replace('{[ ]+}', ' ', $string);
// делаем транслит
$string = strtr($string,
"абвгдежзийклмнопрстуфыэ",
"abvgdegziyklmnoprstufie"
);
$string = strtr($string, array(
'ё'=>"yo", 'х'=>"h", 'ц'=>"ts", 'ч'=>"ch", 'ш'=>"sh",
'щ'=>"shch", 'ъ'=>'', 'ь'=>'', 'ю'=>"yu", 'я'=>"ya",
));
$explode = explode(' ', $string);
$explode = array_map('ucfirst', $explode);
$string = implode('', $explode);
return $string;
}
?>
|
На локальной машине (win xp sp1 | денвер) всё работало отлично. Начались проблемы после выгрузки на хостинг: после её работы переменные опустошаются...
Хостер посоветовал заюзать
<?
setlocale(ru_RU.cp1251);
// либо, если не сработает, то
setlocale(ru_RU.CP1251);
?>
|
Я записал в функцию второй строчкой:
<?
function translit($string) {
setlocale(ru_RU.CP1251);
//............
?>
|
но ничего не изменилось...
Прошу совета по использованию этой ф-ии. Может я её не в том месте использую, может её нужно юзать непосредственно в коде, где осуществляется транслитерация...
Хостер ничего вразумительного не говорит... страница http://ru2.php.net/setlocaleмною прочитана, но ничего мною не понято. Help...
Спасибо... | |
| |
|
| |
|