Как я могу создать SEO-дружественный разделитель тире из строки? - PullRequest
17 голосов
/ 21 января 2009

Возьмите строку, такую ​​как:

В C #: как добавить «Кавычки» вокруг строки в списке строк, разделенных запятыми?

и преобразовать его в:

in-c-how-do-i-add-quotes-round-string-in-a-a-del-delimited-list-of-strings

Требования:

  • Разделите каждое слово тире и удалите все знаки препинания (учитывая, что не все слова разделены пробелами.)
  • Функция принимает максимальную длину и получает все токены ниже этой максимальной длины. Пример: ToSeoFriendly("hello world hello world", 14) возвращает "hello-world"
  • Все слова переводятся в нижний регистр.

На отдельной ноте должна быть минимальная длина?

Ответы [ 12 ]

0 голосов
/ 02 октября 2009

В динамическом URL эти идентификаторы передаются через строку запроса в скрипт, который ... как символ-разделитель, потому что большинство поисковых систем рассматривают дефис как ... NET: Руководство разработчика по SEO также охватывает эти три дополнительные методы поисковая оптимизация

0 голосов
/ 13 февраля 2009

Немного более чистый способ сделать это в PHP как минимум:

function CleanForUrl($urlPart, $maxLength = null) {
    $url = strtolower(preg_replace(array('/[^a-z0-9\- ]/i', '/[ \-]+/'), array('', '-'), trim($urlPart)));
    if ($maxLength) $url = substr($url, 0, $maxLength);
    return $url;
}

Можно также выполнить trim() в начале, чтобы потом было меньше обработки, а полная замена выполняется в preg_replace().

Thxs to cg за то, что придумал большую часть этого: Каков наилучший способ очистки строки для размещения в URL, например, имени вопроса в SO?

...