Сорри, завтыкал ответить.
Для транслита я нашел в гугле первую попавшуюся функцию:
PHP код:
function translit($string) {
$string=strtr($string,
"абвгдеёзийклмнопрстуфхъыэ".chr(0xB3)."АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ".chr(0xB2),
"abvgdeeziyklmnoprstufh'ieiabvgdeeziyklmnoprstufh'iei");
$string=strtr($string,
array(
"ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
"щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
"Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
"Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
"ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye",
)
);
return $string;
}
Но этого мало. Чтобы из тайтла в <h1> сделать урл, его надо:
- почистить от тегов и мусора
- перевести с кириллицы na moldavskiy - та самая функция translit()
- конвертнуть в маленькие буквы (все время путаю строчные они или прописные),
- заменить все "не-буквы" и "не-цифры" на знак минус
- убрать повторяющиеся знаки минус, заменить на один одинарный.
- можно в конце .htm дописать для правдоподобности, все-таки урл же
PHP код:
function title2url($str) {
$str = strip_tags($str);
$str = preg_replace('/&.+?;/', '', $str); // kill entities
$str = translit($str);
$str = strtolower($str);
$str = preg_replace('/[^a-z0-9_.-]+/','-',$str);
$str = preg_replace('/-+/','-',$str);
$str = trim($str,'-');
$str .= '.htm';
return $str;
}