2009-09-24 8 views
0

J'ai une variable comme montré ci-dessous avec des initiales majuscules et un espace. Quel serait le moyen idéal pour formater de sorte qu'il en minuscule les initiales et met "-" entre les deux. Donc, résultat final devrait être "los-angeles":PHP Format variable

$city = "Los Angeles"; 

convertir à

$city ="los-angeles"; 
+0

essayez-vous de créer une partie de l'URL? – SilentGhost

+0

Est-ce un * Comment puis-je convertir un titre de document dans une URL slug? * Question? – Gumbo

+0

Oui, il sera utilisé dans l'URL – shaytac

Répondre

1
str_replace(' ', '-', strtolower($city)); 

Mais si vous essayez de créer url, il ne sera pas suffisant.

+0

Mann je loveeee stackoverflow ne peux pas aller mieux que cela. Merci pour la réponse – shaytac

0
function slug($str) 
{ 
    $str = strtolower(trim($str)); 
    $str = preg_replace('/[^a-z0-9-]/', '-', $str); 
    $str = preg_replace('/-+/', "-", $str); 
    return $str; 
} 

En supposant que vous parlez de PHP.

2

Pour accomplir votre tâche spécifique, vous feriez:

$city = str_replace(' ','-',strtolower($city)); 

Mais, si vous faites cela pour que la chaîne fonctionne dans une URL (les commentaires ont suggéré), vous devriez faire :

$city = urlencode($city); 
0
/** method slugify 
    * 
    * cleans up a string such as a page title 
    * so it becomes a readable valid url 
    * 
    * @param STR a string 
    * @return STR a url friendly slug 
    **/ 

    function slugifyAlnum($str){ 

    $str = preg_replace('#[^0-9a-z]#i', ' ', $str); // allow letter and numbers only 
    $str = preg_replace('#(){2,}#', ' ', $str);  // rm adjacent spaces 

    return strtolower(str_replace(' ', '-', $str)); // slugify 


    } 

drôle, je travaillais sur cette question aujourd'hui, je le couper avant de l'envoyer ici, ce func est lorsque les utilisateurs sont autorisés à créer un titre de la page que vous souhaitez utiliser pour créer une limace pour mod_rewrite etc.

pour Allow habituels f-ups comme plus d'un espace, coller les caractères non alnum dedans etc