2011-05-15 241 views
5

我只是想知道是否有一種方法來寫這段代碼在一行。PHP爆炸函數

$exp = explode(" ", $text); 
$cut = $exp[0]; 

所以不需要指定變量。

感謝

回答

8

如果您只想第一部分,那麼避免陣列的解決方法與strtok

$cut = strtok($text, " "); 

它削減了一些東西從字符串,直到第一個分隔符(在你的案例中的空間)。

+5

這是一個非常好的答案,除非第一個字符是''「',否則它會很好地工作。 OP的問題的結果將是一個空字符串,並且您的答案的結果將是從字符串pos 1到下一個空格的字符串。無論如何。 – AndersTornkvist 2011-05-15 19:25:56

+0

@ richard86:有趣。我從來沒有意識到它實際上跳到了第一個非分隔符。通常應用'trim()'來獲得確切的行爲。但是,如果你可能需要/期望一個空字符串部分,那麼這是一個顯着的區別。 – mario 2011-05-15 19:36:52

3
$var = reset(explode(" ", $text)); 
+0

但你最終會與具有的第一個元素(如題'$ cut',但什麼也沒有說將有完整的陣列,比如'$ EXP一個'$ var' ' – Nanne 2011-05-15 18:40:33

+0

這也會給出一個錯誤:'嚴格的標準:只有變量應該通過引用傳遞' – meze 2011-05-15 18:41:52

+0

@Nanne。這就是OP的問題 – PeeHaa 2011-05-15 18:43:55

3
$cut = substr ($text, 0, strpos ($text, ' ')); 

OR

$cut = substr (trim ($text), 0, strpos (trim ($text), ' '));