Измените переменную 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)));
Ответ 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)));