2011-05-15 162 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), ' '));