logo
Автор: blessmaster
Описание: транслитерация url для seo
Язык: PHP
/**
 * Функция необратимой транслитерации для SEO.
 * Текст в таком транслите утрачивает однозначность и восстановлению не поделижит,
 * (при этом всё-таки сохраняя читабельность для посетителей сайта)
 * так же как *не может* быть напрямую использован как уникальный идентификатор
 * при соответствующем ограничении наложенном на кириллический заголовок.
 * Данную проблему можно решить двумя путями - ставить ограничение именно на
 * транслитерированный заголовок, для чего завести в базе соответствующее поле,
 * либо дополнять ссылку реальным идентификатором.
 *
 * Но при всех недостатках этот транслит понятен поисковикам
 * и послужит дополнительным бонусом при ранжировании поисковой
 * выдачи (за некоторыми исключениями, описанными в этой статье:
 * http://blessmaster.livejournal.com/115715.html
 *
 * @param string $text текст для транслитерации
 * @return string транслитерированную строку
 * @author BlessMaster (deep-dream@ya.ru)
 */
function wct_seo_rus2lat($text) {

	$text = mb_strtoupper($text, 'UTF-8');

	$exchange = array(
		'|А|si'=>'a',
		'|Б|si'=>'b',
		'|В|si'=>'v',
		'|Г|si'=>'g',
		'|Д|si'=>'d',
		'|Е|si'=>'e',
		'|Ё|si'=>'e',
		'|Ж|si'=>'j',
		'|З|si'=>'z',
		'|И|si'=>'i',
		'|Й|si'=>'y',
		'|К|si'=>'k',
		'|Л|si'=>'l',
		'|М|si'=>'m',
		'|Н|si'=>'n',
		'|О|si'=>'o',
		'|П|si'=>'p',
		'|Р|si'=>'r',
		'|С|si'=>'s',
		'|Т|si'=>'t',
		'|У|si'=>'u',
		'|Ф|si'=>'f',
		'|Х|si'=>'kh',
		'|Ц|si'=>'c',
		'|Ч|si'=>'ch',
		'|Ш|si'=>'sh',
		'|Щ|si'=>'shch',
		'|Ъ|si'=>'',
		'|Ы|si'=>'y',
		'|Ь|si'=>'',
		'|Э|si'=>'e',
		'|Ю|si'=>'yu',
		'|Я|si'=>'ya',
		'| |si'=>'-', // сохраняем пробел от перехода в %20 понятным гуглу способом
					 // подчёркивание не годится, так как гугл не понимает его
		'|,|si'=>'..', // сохраняем запятую
		"|'|si"=>'-',
	);
	$text = preg_replace(array_keys($exchange), array_values($exchange), $text);
	// Остальные символы - уже никуда не денешься
	$text = rawurlencode($text);
	// Несколько позже, функция будет дополнена другими кириллическими символами
	// после проведения соответствующего исследования, если это кому-нибудь нужно
	return $text;
}
Последние размещения:
biophreak (Plain Text)
Raik (PHP)
MUSbKA (Plain Text)
MUSbKA (Plain Text)
nekitozzz (C++)
nekitozzz (Plain Text)
nekitozzz (C++)
ksurent (Perl)
MUSbKA (C++)
stalin_alex (C++)
dzantiev (Plain Text)
unreal (C++)
eug2b (Plain Text)
netsago.paste.β © 2009 Neunica