2010-07-22 8 views

Respuesta

28
$string = preg_replace('/-{2,}/','-',$string); 
+0

+1 para el uso de aparatos de ortodoncia. –

+1

¿El rendimiento de las llaves es significativamente mejor que solo '- +'? – Wrikken

+0

Gracias Mark! :-D ¿Es tan fácil eliminar un guión si la cadena comienza con uno? Por ejemplo tener "--hello --- world" resulta ser "hello-world"? – kasperwf

0

tratar $string = preg_replace('/-+/', '-', $string)

0
$string = preg_replace('/--+/', '-', $string); 
0

Aquí es la función que estoy usando - funciona como un encanto :)

public static function setString($phrase, $length = null) { 
    $result = strtolower($phrase); 
    $result = trim(preg_replace("/[^0-9a-zA-Z-]/", "-", $result)); 
    $result = preg_replace("/--+/", "-", $result); 
    $result = !empty($length) ? substr($result, 0, $length) : $result; 
    // remove hyphen from the beginning (if exists) 
    $first_char = substr($result, 0, 1); 
    $result = $first_char == "-" ? substr($result, 1) : $result; 
    // remove hyphen from the end (if exists) 
    $last_char = substr($result, -1); 
    $result = $last_char == "-" ? substr($result, 0, -1) : $result;  
    return $result; 
} 
2

para eliminarlos desde el principio y el final:

$string = trim($string, '-'); 
+1

No es realmente útil publicar una respuesta parcial 3 años después de la pregunta –

+2

Muchos vienen a través de Google ** diariamente **. Esta información se lee todos los días durante estos tres años y durará. Desafortunadamente, no se pudo agregar esto como comentario. – dragonattack

Cuestiones relacionadas