Вот решение для php:
function make_uri($input, $max_length) {
if (function_exists('iconv')) {
$input = @iconv('UTF-8', 'ASCII//TRANSLIT', $input);
}
$lower = strtolower($input);
$without_special = preg_replace_all('/[^a-z0-9 ]/', '', $input);
$tokens = preg_split('/ +/', $without_special);
$result = '';
for ($tokens as $token) {
if (strlen($result.'-'.$token) > $max_length+1) {
break;
}
$result .= '-'.$token;
}
return substr($result, 1);
}
использование:
echo make_uri('In C#: How do I add "Quotes" around string in a ...', 500);
Если вам не нужно, чтобы урис был набираемым, они не должны быть маленькими. Но вы должны указать максимум, чтобы URL-адреса хорошо работали с прокси и т. Д.