2011-08-16 7 views
0

Je dois supprimer les espaces en trop des noms d'utilisateur de mes joueurs dans mon application (plus d'une fois l'espace entre les lettres) et les remplacer par un seul espace. Cela ne me dérange pas que les utilisateurs aient un seul espace, mais j'ai besoin de supprimer plusieurs espaces les uns à côté des autres. Actuellement, je le réalise de cette manière:Remplacement des espaces excédentaires

$replace_array=array(' ',' ',' ','  ','  ','  ','  ','    ','   ','   ','   ','    ','    ','    '); 
$fill_array=array('','','','','','','','','','','','','',''); 

$user_name=str_replace($replace_array,$fill_array,trim($_POST['name'])); 
$user_name=preg_replace('/[^a-zA-Z0-9 ]/','',$user_name); 

Cela semble totalement inutile pour éliminer les espaces blancs en excès. Est-ce que, peut-être, la fonction preg_replace gère déjà les espaces blancs en excès? Sinon, que dois-je faire pour simplifier cette partie de mon code.

Merci!

+0

duplication possible de [supprimer plusieurs espaces en php] (http://stackoverflow.com/questions/2326125/remove-multiple-whitespaces-in-php) –

Répondre

6
preg_replace('/\s+/', ' ', $string); 
+0

Comment combiner ma fonction preg_replace actuelle avec celle-ci? J'ai besoin d'étudier cette fonction un peu plus. – Phillip

+0

'$ nom_utilisateur = preg_replace ('/ \ s + /', '', $ nom_utilisateur);', puis effectuez le second preg_replace comme d'habitude. mélanger des expressions rationnelles qui ont des buts différents ne finira généralement que vous mordre dans la crosse, alors gardez-les séparés. –

+0

Très apprécié! Acceptera quand je peux. – Phillip

1

trouver 1 ou plus d'espace et remplacer par 1 espace:

preg_replace('/\s+/',' ',$user_name) 

vous pouvez également utiliser 1 preg-remplacer déclaration

$user_name=preg_replace('/([^a-zA-Z0-9 ]|\s+)/','',$user_name); 
0

essayer preg_replace comme ceci:

preg_replace('/\s{2,}/', ' ', $str); 
0

ma compréhension est que simplement en utilisant str_replace(' ', '') va résoudre votre problème. Il remplace plusieurs occurrences d'un espace. Avez-vous essayé d'utiliser ltrim?

Questions connexes