Проблемче с javascript-че..

Ev0luti0N

Registered
Абе вече 2-ри ден се чудя, защо този javascript:
<script type="text/javascript">
var bgl = new Array("ш","А","Б","Ц","Д","Е","Ф","Г","С","И","Ж","К","Л","М","Н","О","П","Я","Р","С","Т","Ъ","В","Л","Х","У","З","а","б","ц","д","е","ф","г","х","и","ж","к","л","м","н","о","п","я","р","с","т","ъ","в","л","х","у","з","ч","ш","ч","ш","щ","ю","ч","х","щ","щ");
var enl = new Array("sh","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","4","6","~","\\[","\\]","\\\\","ch","x","шт","sht");
function entobg(str) {
str = ""+str;
for (i=0;i<enl.length;i++) str = str.replace(eval("/"+enl+"/g"),bgl);
return str;
}
</script>

Когато го сложа в стринг:
echo '<script type="text/javascript">
var bgl = new Array("ш","А","Б","Ц","Д","Е","Ф","Г","С","И","Ж","К","Л","М","Н","О","П","Я","Р","С","Т","Ъ","В","Л","Х","У","З","а","б","ц","д","е","ф","г","х","и","ж","к","л","м","н","о","п","я","р","с","т","ъ","в","л","х","у","з","ч","ш","ч","ш","щ","ю","ч","х","щ","щ");
var enl = new Array("sh","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","4","6","~","\\[","\\]","\\\\","ch","x","шт","sht");
function entobg(str) {
str = ""+str;
for (i=0;i<enl.length;i++) str = str.replace(eval("/"+enl+"/g"),bgl);
return str;
}
</script>';

Ми дава грешка, когато си е без стринг ми работи перфектно?
 
Ако съм те разбрал правилно този код ще ти свърши работа ;) Разбира се, ако не държиш да е писан на JavaScript.

Код:
 <?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>";
?>
 
Ако искаш да го изкараш с php направи така

Код:
echo <<<KRAI
<script type="text/javascript">
var bgl = new Array("ш","А","Б","Ц","Д","Е","Ф","Г","С","И","Ж","К","Л","М","Н","О","П","Я","Р","С","Т","Ъ","В","Л","Х","У","З","а","б","ц","д","е","ф","г","х","и","ж","к","л","м","н","о","п","я","р","с","т","ъ","в","л","х","у","з","ч","ш","ч","ш","щ","ю","ч","х","щ","щ");
var enl = new Array("sh","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","4","6","~","\\[","\\]","\\\\","ch","x","шт","sht");
function entobg(str) {
str = ""+str;
for (i=0;i<enl.length;i++) str = str.replace(eval("/"+enl[i]+"/g"),bgl[i]);
return str;
}
</script>
KRAI;
Като на реда с KRAI; не трябва да има абсолютно нищо друго на него.
 
Нестава..
$this->content .= '
<script type="text/javascript">
var bgl = new Array("ш","А","Б","Ц","Д","Е","Ф","Г","С","И","Ж","К","Л","М","Н","О","П","Я","Р","С","Т","Ъ","В","Л","Х","У","З","а","б","ц","д","е","ф","г","х","и","ж","к","л","м","н","о","п","я","р","с","т","ъ","в","л","х","у","з","ч","ш","ч","ш","щ","ю","ч","х","щ","щ");
var enl = new Array("sh","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","4","6","~","\\[","\\]","\\\\","ch","x","шт","sht");
function entobg(str) {
str = ""+str;
for (i=0;i<enl.length;i++) str = str.replace(eval("/"+enl+"/g"),bgl);
return str;
}
</script>
';
 

Back
Горе