Измените переменную php, замените белые пробелы пунктиром
Как я могу преобразовать переменную PHP из "Моя компания и мое имя" в "my-company-my-name"?
Мне нужно сделать все в нижнем регистре, удалить все специальные символы и заменить пробелы тире.
Ответы
Ответ 1
Эта функция создаст дружественную для SEO строку
function seoUrl($string) {
//Lower case everything
$string = strtolower($string);
//Make alphanumeric (removes all other characters)
$string = preg_replace("/[^a-z0-9_\s-]/", "", $string);
//Clean up multiple dashes or whitespaces
$string = preg_replace("/[\s-]+/", " ", $string);
//Convert whitespaces and underscore to dash
$string = preg_replace("/[\s_]/", "-", $string);
return $string;
}
должно быть хорошо:)
Ответ 2
Замена определенных символов:
http://se.php.net/manual/en/function.str-replace.php
Пример:
function replaceAll($text) {
$text = strtolower(htmlentities($text));
$text = str_replace(get_html_translation_table(), "-", $text);
$text = str_replace(" ", "-", $text);
$text = preg_replace("/[-]+/i", "-", $text);
return $text;
}
Ответ 3
Yop, и если вы хотите обрабатывать любые специальные символы, вам нужно объявить их в шаблоне, иначе они могут быть сброшены. Вы можете сделать это так:
strtolower(preg_replace('/-+/', '-', preg_replace('/[^\wáéíóú]/', '-', $string)));