от кирилица на латиница

montana

Registered
Ползвам един скрипт за качване на снимки и когато въведа заглавие на снимката на латиница си излиза в линка нормално. Примерно:

zaglavie :arrow: saita.com/zaglavie-124.html

но когато е на кирилица, вместо букви ми излизат тирета

Пр: заглавие :arrow: saita.com/---124.html

Как може да се направи така, че кирилицата да се преобразува в латиница като:

алабала :arrow: alabala

Може би трябва да се ползва това , но незнам как да го сложа -> http://web-tourist.net/forum/viewtopic.php?t=95122


Ето кода за качване:

PHP:
<?php

include("./architecture/connect.php");
include("./architecture/functions.php");

if(isset($_POST['title']))
{


$title=checkerr(mysql_real_escape_string($_POST['title']));

$filename = preg_replace('/[\p{Z}\s]{2,}/u', ' ', $title);
$filename = str_replace(" ", "_", $filename);
$filename = preg_replace("/[^A-Za-z0-9_]/","",$filename);
$filename = str_replace("_", "-", $filename);
$filename=strtolower($filename);



$wexten = getFileExtension($_FILES['foto']['name']);

$type = $_FILES['foto']['type'];

  if(!strcmp("image/jpg",$type) || !strcmp("image/jpeg",$type) || !strcmp("image/pjpeg",$type))
	{
      	  $type = "image/jpeg";
	}
   else if(!strcmp("image/png",$type))
	{
      	  $type = "image/png";
	}
   else if(!strcmp("image/gif",$type))
	{
      	  $type = "image/gif";
	}
   else
	{

	$url = constructLink("submit",$property['apache']);
	$url = $url."?msg=2";
	echo("<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=$url\">");
	
	}

$images = mysql_query("SELECT * FROM approve ORDER BY id DESC");
if(mysql_num_rows($images) > 0)
{

$approval = mysql_fetch_array($images);
$id = $approval['id'] + 1;
}
else
{
$id = 1;

} 

$target = "./tempimg/".$filename."-".$id.".".$wexten;

if(isset($_POST['source']))
{
$source = checkerr(mysql_real_escape_string($_POST['source']));
}
else
{
$source = "Unknown";
}

$date = date(time());

mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'");
mysql_query("INSERT INTO approve (id, title,filename,ext, source,date,type) VALUES ('$id', '$title', '$filename', '$wexten', '$source', '$date', '$type')") or die("Error!");


if(move_uploaded_file($_FILES['foto']['tmp_name'], $target))
{
$url = constructLink("index",$property['apache']);
$url = $url."?msg=1";
echo("<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=$url\">");

}
else {

$url = constructLink("submit",$property['apache']);
$url = $url."?msg=2";
echo("<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=$url\">");

}


}
else
{
$url = constructLink("submit",$property['apache']);
$url = $url."?msg=2";
echo("<meta HTTP-EQUIV=\"REFRESH\" content=\"0; url=$url\">");
}

?>
 
Искаш всички заглавия да са ти на латиница или искаш да има и на латиница и на кирлица? Това е важно за да знаем как да структурираме кода.
 
Извинявам се за двойния пост:

Тествай това:



PHP:
/** Това е просто за тест */

$title = 'здравейте-–_–-!@№$%?§* нещо друго _ ––?"ѝ"""""–ЧЯЩЗЖ“ЦВЖБЦВМНМѝ":ЛЧЮ!ю?/.ьщп;.,з!@#$@##$%#^%$&^%*&^) ___ A Dask dlkas ldkas dAS +D ++_ ____';



$filename = preg_replace('/\s[\s]+/u','-',$title);    // Strip off multiple spaces 
$filename = preg_replace('/[\s\W]+/u','-',$filename);    // Strip off spaces and non-alpha-numeric 
$filename = preg_replace('/^[\-]+/u','',$filename); // Strip off the starting hyphens 
$filename = preg_replace('/[\-]+$/u','',$filename); // // Strip off the ending hyphens 
$filename = strtolower($filename); 

echo $filename;
exit;
 
Аз се оправих така:

PHP:
$filename = str_replace("а", "a", $filename); 
$filename = str_replace("А", "A", $filename);
$filename = str_replace("б", "b", $filename); 
$filename = str_replace("Б", "B", $filename);
$filename = str_replace("в", "v", $filename); 
$filename = str_replace("В", "V", $filename);
$filename = str_replace("г", "g", $filename); 
$filename = str_replace("Г", "G", $filename);
$filename = str_replace("д", "d", $filename); 
$filename = str_replace("Д", "D", $filename);
..

и така на натък , до края на азбуката
 
@Jorko ти беше дал 100 пъти по-прост код, само му трябваше малка промяна.
Примерна замяна от кирилица на латиница:

<?php
function cyr2lat($result)
{
$cyr = array("а","А","б","Б","в","В","г","Г","д","Д","е","Е","ж","Ж","з","З","и","И","й","Й","к","К","л","Л","м","М","н","Н","о","О","п","П","р","Р","с","С","т","Т","у","У","ф","Ф","х","Х","ц","Ц","ч","Ч","ш","Ш","щ","Щ","ь","ъ","Ъ","ю","Ю","я","Я"); //масива със кирилица

$lat = array("a","A","b","B","v","V","g","G","d","D","e","E","j","J","z","Z","i","I","i","I","k","K","l","L","m","M","n","N","o","O","p","P","r","R","s","S","t","T","u","U","f","F","h","H","c","C","ch","Ch","sh","Sh","sht","Sht","u","u","U","iu","Iu","q","Q"); //масива със латинските букви

$bbc_num = count($cyr); //бройм елементите във масива $cyr
$loop = 0;
while($loop < $bbc_num)
{
$result = str_replace($cyr[$loop], $lat[$loop], $result); //заместваме буквите
$loop++;
}
return $result;
}

$strings = "Пробен текст конвертиран от кирилица на латиница. Ще го тестваме ;). Я да тестваме и я, ю, Я, Ю, ш, Ш, щ, Щ..";
$strings = cyr2lat($strings);
echo $strings;
?>

Текст:
Пробен текст конвертиран от кирилица на латиница. Ще го тестваме ;). Я да тестваме и я, ю, Я, Ю, ш, Ш, щ, Щ..

Резултат:
Proben tekst konvertiran ot kirilica na latinica. Shte go testvame ;). Q da testvame i q, iu, Q, Iu, sh, Sh, sht, Sht..

Ето го и вградено:
<?php
function cyr2lat($result)
{
$cyr = array("а","А","б","Б","в","В","г","Г","д","Д","е","Е","ж","Ж","з","З","и","И","й","Й","к","К","л","Л","м","М","н","Н","о","О","п","П","р","Р","с","С","т","Т","у","У","ф","Ф","х","Х","ц","Ц","ч","Ч","ш","Ш","щ","Щ","ь","ъ","Ъ","ю","Ю","я","Я"); //масива със кирилица

$lat = array("a","A","b","B","v","V","g","G","d","D","e","E","j","J","z","Z","i","I","i","I","k","K","l","L","m","M","n","N","o","O","p","P","r","R","s","S","t","T","u","U","f","F","h","H","c","C","ch","Ch","sh","Sh","sht","Sht","u","u","U","iu","Iu","q","Q"); //масива със латинските букви

$bbc_num = count($cyr); //бройм елементите във масива $cyr
$loop = 0;
while($loop < $bbc_num)
{
$result = str_replace($cyr[$loop], $lat[$loop], $result); //заместваме буквите
$loop++;
}
return $result;
}
$filename = "Тестов файл.пхп";

$filename = cyr2lat($filename);
echo $filename;
?>

Като ти ще си промениш този ред $filename = "Тестов файл.пхп"; ;)
 
Не те тука хората който пишат за помощ всякаш падат от марс.
1.Никога преди да пуснат тема не търсят в google.
2.Второ като им дадеш код ама как да го вградя не работи.
Еми ако искате да ви напиша кода и за качване а?
Малко ако си напанете фъстъчетата у кухата лейка може и да успеете :?:
 

Back
Горе