URl encode

  • Автор Автор Hous
  • Начална дата Начална дата

Hous

Registered
Значи въпроса ми е как точно става да се преобразува запис от дб от български да стане на латиница и ако е на латиница/инглиш да не се преобразува (preg_match ) ли там какво се ползва.Искам да стане от
Текст текст във text-text или tekst-tekst
и празното място да става на - а пък българските букви да стават на latinica.
 
PHP:
$duma = "text";
$arr1 = array("ks");
$arr2 = array("x");
echo str_replace($arr2, $arr1, $duma);
Така да си ги изброяваш ти, за друг начин не се сещам..
 
Ev0luti0N каза:
Така да си ги изброяваш ти, за друг начин не се сещам..
Ясно ми е ,че ще се изброяват надявах се просто да има готов код който да променя цялата азбука и празните пространства.И съм сигурен,че има въпроса е да има кой да даде или да даде пример поне за 5-6 букви +празното пространство. :)
 
Заповядай
PHP:
<?php
 class Transliterator
 {
 	private static $BgEng = array(
	 'ия' => 'ia', 'Ия' => 'Ia',
	 'ю' => 'iu', 'Ю' => 'Iu',
	 'я' => 'ia', 'Я' => 'Ia',
	 'а' => 'a', 'А' => 'A',
	 'б' => 'b', 'Б' => 'B',
	 'в' => 'v', 'В' => 'V',
	 'г' => 'g', 'Г' => 'G',
	 'д' => 'd', 'Д' => 'D',
	 'е' => 'e', 'Е' => 'E',
	 'ж' => 'j', 'Ж' => 'J',
	 'з' => 'z', 'З' => 'Z',
	 'и' => 'i', 'И' => 'I',
	 'й' => 'y', 'Й' => 'Y',
	 'к' => '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',
	 'ч' => '4', 'Ч' => '4',
	 'щ' => '6t', 'Щ' => '6t',
	 'ш' => '6', 'Ш' => '6',
	 'ъ' => 'a', 'Ъ' => 'A',
	 'ь' => 'i'
	 );
 	
 	public static function ToEnglish($string)
 	{
		return str_replace(array_keys(self::$BgEng), array_values(self::$BgEng), $string);
 	}
 	
 	public static function ToBulgarian($string)
 	{
 		return str_replace(array_values(self::$BgEng), array_keys(self::$BgEng), $string);
 	}
 	
 	public static function GetFileName($title)
 	{
 		$latin = self::ToEnglish(trim($title));
 		$latin = trim(preg_replace("/[^a-zA-Z0-9\-\s\.]/", '', $latin));
 		$latin = preg_replace("/(\s+|\.+)/", "-", $latin);
 		$latin = preg_replace("/\-+/", "-", $latin);

 		return trim($latin, "-");
 	}
 }
 
 ?>

Ползва се така: Transliterator::GetFileName('тука текста ти')
 
Супер,въпрос - ако е на english ще си стой на english без да мъчи да го преработва нали? :)
 
Hous каза:
Супер,въпрос - ако е на english ще си стой на english без да мъчи да го преработва нали? :)

Ако има български букви ще ги оправи. Иначе само ще сложи тиретата и ще махне специални знаци ако има.
 
StormBreaker каза:
Hous каза:
Супер,въпрос - ако е на english ще си стой на english без да мъчи да го преработва нали? :)

Ако има български букви ще ги оправи. Иначе само ще сложи тиретата и ще махне специални знаци ако има.
Перфектно. :)
+
 

Back
Горе