Търсачка кирилица/латиница

bogdan4o

Registered
Здравейте някой знае ли как като си направя търсачката песента като е на кирилица и аз напиша с латински букви да ми е изкарва като резултат и обратното. Търсих из търсачките прерових 6-7 страници, нищо неоткрих и реших да ви попитам :)
 
Използвай str_replace, за да превърнеш писаното от латиница в кирилица:

Примери:
Код:
str_replace('b','б',$searchcriteria);
str_replace('m','м',$searchcriteria);
str_replace('l','л',$searchcriteria);
 
Обърни внимание на sh='ш', ch='ч', по-другите начини не са изпозлвани толкова, и ако потребителя търси Shakira, няма да му излезе "Схакира", а "Шакира", което е вярното. Направи си ги така, препоръка от мен.
 
Скоро го пренаписвах този код и на мен ми върши страхотна работа. Успех! :)

Код:
<?php
function kirilica($kir){
$specialchars = array("ч" => "ch","Ч" => "CH","ш" => "sh","Ш" => "SH","щ" => "sht","Щ" => "SHT","ю" => "iu","Ю" => "IU","я" => "q","Я" => "Q", "ьо" => "jzo");
$kirilica=array(
'А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О',
'П','Р','С','Т','У','Ф','Х','Ц','Ъ','Ь','Я',
'а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о',
'п','р','с','т','у','ф','х','ц','ъ','ь','я'); //масива със кирилица, съответстващ на този с латиница
$latinica=array(
'A','B','V','G','D','E','Zh','Z','I','J','K','L','M','N','O',
'P','R','S','T','U','F','H','C','Y','J','Q',
'a','b','v','g','d','e','zh','z','i','j','k','l','m','n','o',
'p','r','s','t','u','f','h','c','y','j','q'); //масива със латинските букви
$bbc_num=count($kirilica); //бройм елементите във масива $kirilica
$loop=0;
while($loop<$bbc_num){
$kir2 = strtr($kir, $specialchars);
$kir = str_replace($kirilica[$loop], $latinica[$loop], $kir2); //заместваме буквите
$loop++;
}
return $kir2;
}

function latinica($lat){
$specialchars = array("ch" => "ч", "CH" => "Ч", "sh" => "ш", "SH" => "Ш", "sht" => "щ", "SHT" => "Щ", "iu" => "ю", "IU" => "Ю", "q" => "я", "Q" => "Я", "jzo" => "ьо");
$latinica=array(
'A','B','V','G','D','E','Zh','Z','I','J','K','L','M','N','O',
'P','R','S','T','U','F','H','C','Y','J','Q',
'a','b','v','g','d','e','zh','z','i','j','k','l','m','n','o',
'p','r','s','t','u','f','h','c','y','j','q'); //масива със латинските букви
$kirilica=array(
'А','Б','В','Г','Д','Е','Ж','З','И','Й','К','Л','М','Н','О',
'П','Р','С','Т','У','Ф','Х','Ц','Ъ','Ь','Я',
'а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о',
'п','р','с','т','у','ф','х','ц','ъ','ь','я'); //масива със кирилица, съответстващ на този с латиница
$bbc_num=count($latinica); //бройм елементите във масива $latinica
$loop=0;
while($loop<$bbc_num){
$lat2 = strtr($lat, $specialchars);
$lat = str_replace($latinica[$loop], $kirilica[$loop], $lat2); //заместваме буквите
$loop++;
}
return $lat2;
}

$string = "Шакира";
$string2 = kirilica($string2);

$string3 = "Shakira";
$string4 = latinica($string4);

echo "$string2 <br><br>";

echo "$string4 <br>";
?>
 
а как да смена да ми вади в обратен ред резултатите защото ми вади винаги първите резултати като вкарам нови ми вади 1-вите качени
 

Back
Горе