|
|
|
|
|
для: kamat0z
(05.05.2009 в 11:52)
| | Работает!
function encodestring($str)
{
$arr = array(
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'ё' => 'jo',
'ж' => 'zh',
'з' => 'z',
'и' => 'i',
'й' => 'jj',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'kh',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'shh',
'ъ' => '9',
'ы' => 'y',
'ь' => '6',
'э' => 'eh',
'ю' => 'ju',
'я' => 'ja',
'А' => 'A',
'Б' => 'B',
'В' => 'V',
'Г' => 'G',
'Д' => 'D',
'Е' => 'E',
'Ё' => 'Yo',
'Ж' => 'G',
'З' => 'Z',
'И' => 'I',
'Й' => 'Y',
'К' => 'K',
'Л' => 'L',
'М' => 'M',
'Н' => 'N',
'О' => 'O',
'П' => 'P',
'Р' => 'R',
'С' => 'S',
'Т' => 'T',
'У' => 'U',
'Ф' => 'F',
'Х' => 'H',
'Ц' => 'Ts',
'Ч' => 'Ch',
'Ш' => 'Sh',
'Щ' => 'Shch',
'Ъ' => '',
'Ы' => 'I',
'Ь' => '',
'Э' => 'E',
'Ю' => 'Yu',
'Я' => 'Ya'
);
$key = array_keys($arr);
$val = array_values($arr);
$trans = str_replace($key,$val,$str);
return $trans;
}
|
| |
|
|
|
|
|
|
|
для: Николай2357
(05.05.2009 в 11:47)
| | Всем большое спасибо.
Разобрался.
Проблема в кодировке. http://forum.dklab.ru/viewtopic.php?t=30401&postdays=0&postorder=asc&highlight= | |
|
|
|
|
|
|
|
для: trotsak
(05.05.2009 в 10:53)
| |
function encodestring($st)
{
// Сначала заменяем "односимвольные" фонемы.
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
"abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
// Затем - "многосимвольные".
$st=strtr($st,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
// Возвращаем результат.
return $st;
}
echo $fname = encodestring($_POST['fname']);
|
должно вывести транслиретированное слово | |
|
|
|
|
|
|
|
для: trotsak
(05.05.2009 в 10:53)
| | Эта функция не будет работать под utf-8. Вот эта гораздо проще и надежнее:
<?php
function encodestring($str)
{
$arr = array(
'а' => 'a',
'б' => 'b',
'в' => 'v',
'г' => 'g',
'д' => 'd',
'е' => 'e',
'ё' => 'jo',
'ж' => 'zh',
'з' => 'z',
'и' => 'i',
'й' => 'jj',
'к' => 'k',
'л' => 'l',
'м' => 'm',
'н' => 'n',
'о' => 'o',
'п' => 'p',
'р' => 'r',
'с' => 's',
'т' => 't',
'у' => 'u',
'ф' => 'f',
'х' => 'kh',
'ц' => 'c',
'ч' => 'ch',
'ш' => 'sh',
'щ' => 'shh',
'ъ' => '"',
'ы' => 'y',
'ь' => '\'',
'э' => 'eh',
'ю' => 'ju',
'я' => 'ja'
);
$key = array_keys($arr);
$val = array_values($arr);
$trans = str_replace($key,$val,$str);
return $trans;
}
| Только массив нужно дописать верхним регистром. | |
|
|
|
|
|
|
|
для: trotsak
(05.05.2009 в 09:35)
| | Вроде бы откорректировал, но результат тот же.
function encodestring($st)
{
// Сначала заменяем "односимвольные" фонемы.
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
"abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
// Затем - "многосимвольные".
$st=strtr($st,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
// Возвращаем результат.
return $st;
}
$fname = encodestring($_POST['fname']);
|
| |
|
|
|
|
|
|
|
для: kamat0z
(05.05.2009 в 08:31)
| | Спасибо. Мысль понял. Откорректирую. | |
|
|
|
|
|
|
|
для: DEM
(05.05.2009 в 08:25)
| | Простите, а где вы вызываете функцию encodestring? | |
|
|
|
|
|
|
|
для: trotsak
(05.05.2009 в 08:05)
| | Может я просто что-то не заметил, но... ГДЕ вы тут обрабатываете имя функцией? Я заметил тут только функцию и сразу занесение в БД, без обработки чего-либо функцией. | |
|
|
|
|
|
|
| Пробую транслитерировать кириллицу в латиницу (имя для примера ), но в базу по прежнему заносится кириллица.
if (!empty($_POST['fname']) && $_POST['hobbies']!=' ' && $_POST['pr']='3' && !empty($_POST['hobbies']) && !empty($_FILES['foto_upload']['tmp_name']) )
{
include ("../block/grafi.php");
include ("../block/bd.php");
function encodestring($fname)
{
// Сначала заменяем "односимвольные" фонемы.
$fname=strtr($fname,"абвгдеёзийклмнопрстуфхъыэ_",
"abvgdeeziyklmnoprstufh'iei");
$fname=strtr($fname,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
// Затем - "многосимвольные".
$fname=strtr($fname,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
)
);
// Возвращаем результат.
return $fname;
}
$result_sum = mysql_query ("SELECT sum FROM comments_setting",$db);
$myrow_sum = mysql_fetch_array($result_sum);
$result = mysql_query ("INSERT INTO `brides_data`
(`fname`, `sname`, `birth_d`, `birth_month`, `birth_yr`,
`country`, `town`, `sex`, `length`, `weight`, `alkogol`, `fuma`,
`marital_status`, `children`, `education`, `sfera_deeds`, `foreign_lang`,
`foreig_lang_level`, `hobbies`, `charakter`, `selfpresentation`, `email`,
`password`, `img_url`) VALUES ('$fname', '$sname', '$birth_d',
'$birth_month', '$birth_yr', '$country',
'$town', '$sex', '$length', '$weight', '$alkogol', '$fuma',
'$marital_status', '$children', '$education', '$sfera_deeds',
'$foreign_lang', '$foreig_lang_level', '$hobbies', '$charakter',
'$selfpresentation', '$email', '$password', '$img_url');");
|
Спасибо за ответы. | |
|
|
| |
|