2011-06-21 113 views
106

更換空間我有一個PHP腳本,用戶將輸入一個名稱,如:Alex_Newton用下劃線

然而,一些用戶會使用空格,而不是下劃線,所以我的問題是:

怎麼辦我用PHP中的Underscores自動替換空格?

+2

如果{有人張貼了這個現在SO}(模具(這個「過於狹隘」的問題);已經接管//下來投票和關閉} SO納粹分子,他們似乎已經忘記了什麼沒有按-T興趣他們!==有用的答案, – Gamemorize

回答

287
$name = str_replace(' ', '_', $name); 
+0

非常感謝!它的工作原理<3 – alex

+0

非常感謝:) – Hitesh

10

使用str_replace函數的PHP。

喜歡的東西:

$str = str_replace(' ', '_', $str); 
1

這是我的代碼,這使得空間爲下劃線來命名我的文件部分:

$file = basename($_FILES['upload']['name']); 
$file = str_replace(' ','_',$file); 
44

正如其他的都介紹瞭如何使用str_replace做到這一點,你也可以使用正則表達式來實現這一目標。

$name = preg_replace('/\s+/', '_', $name); 
+8

這是一個更好的解決方案,它用一個下劃線代替多個空格,通常是所需的輸出。 – frostymarvelous

+4

也是標籤,不管 – Loupax

+1

我認爲是最好的解決方案!謝謝... –

3

你也可以做到這一點,以防止開始或類似_words_more_words_下劃線結束的話,這將避免開頭,以空格結束。

$trimmed = trim($string); // Trims both ends 
$convert = str_replace('', '_', $trimmed); 
1

我用這樣的

$option = trim($option); 
$option = str_replace(' ', '_', $option); 
0

Strtr取代單個字符而不是字符串,所以它的這個例子很好的解決方案。據推測,strtrstr_replace快(但對於這種用例,它們都快無比快)。

echo strtr('Alex Newton',' ','_'); 
//outputs: Alex_Newton