Php 获取字符串第一个单词的简单方法

Php 获取字符串第一个单词的简单方法,php,optimization,Php,Optimization,如何在var1中获取字符串的第一个单词,在第二个var中获取其余单词 我的要求: $strInput = "SSCL BAl 101"; $strFirst = ...; $strRest = ...; 我的输出: strFirst = SSCL strRest = BAL 101 我当前的解决方案: list($strFirst,) = explode(" ", $strInput ); $strRest = trim(str_replace($strFirst, '', $strInpu

如何在var1中获取字符串的第一个单词,在第二个var中获取其余单词

我的要求:

$strInput = "SSCL BAl 101";
$strFirst = ...;
$strRest = ...;
我的输出:

strFirst = SSCL
strRest = BAL 101
我当前的解决方案:

list($strFirst,) = explode(" ", $strInput );
$strRest = trim(str_replace($strFirst, '', $strInput ));
还有其他简单的方法吗

$strInput = "SSCL BAl 101";
$strFirst = strtok($strInput, ' ');
$strRest = substr($strInput, strlen($strFirst));

var_dump($strFirst, $strRest); 
输出
.

我对php不太了解,但是如果您使用的是php>=5.3.0,那么似乎可以调用strstr两次


使用爆炸的限制:

 list($strFirst,$strRest) = explode(" ", trim($strInput), 2);
我不知道优化,但它只有一行,可读性很强。如果您愿意,可以使用正则表达式:

 list($strFirst,$strRest) = preg_split("/ /", trim($strInput), 2); // PHP >= 5.3 I believe
编辑
添加了前导空格失败的修剪

使用str_replace是不合适的,因为它是对字符串的全局搜索。考虑输入SSCL BAL SSCL 101。我得到这一个更加说服力很好。我当时正在用explode做一些事情,然后试着把其他部分粘在一起,用于我自己的项目。比我想到的任何东西都要好。
 list($strFirst,$strRest) = explode(" ", trim($strInput), 2);
 list($strFirst,$strRest) = preg_split("/ /", trim($strInput), 2); // PHP >= 5.3 I believe