这是我的代码,目前我能够成功地将其分解为两个变量
$string="life really";
list($firstName, $lastName) = explode(" ", $string);
echo $firstName;
echo $lastName;
输出将类似
life
really
这是我第二次尝试
$string="life really suck";
list($firstName, $lastName) = explode(" ", $string);
echo $firstName;
echo $lastName;
它只回显字符串中的第一个和最后一个单词
这就是生活和糟糕,它没有在$lastname 中捕捉到"真的很糟糕"
我想做的是,我想捕获$firstname中的第一个单词,并捕获$lastname中第一个空格和位置之后的内容。
有可能吗?
根据PHP手册,explode
有一个可选的第三个参数,用于指定函数可以返回的元素数量的限制。使用这个限制,可以使函数将第一个匹配项放在第一个元素中,将字符串的其余部分放在第二个元素中。
示例:
$string="life really suck";
list($firstName, $lastName) = explode(" ", $string, 2); // Added argument 2
echo $firstName;
echo $lastName;
http://ideone.com/Vu0GUz
这提供了一个正确的解决方案:给定一个类似"a B C D…"的字符串将返回2个变量:
$v1="A"$v2="B C D…";
这是代码。
$string="life really suck a lot";
$parts = explode(" ", $string);
$v1 = array_shift($parts);
$v2 = implode(" ", $parts);
输出:
$v1="寿命"
$v2="真的很烂";
试试这个:
$string="life really suck";
preg_match("/(?P<firstname>'w+) (?P<lastname>.*)/",$string,$match);
extract($match);
echo $firstname;
echo "<br>";
echo $lastname;
试试这个。
<?php
$string="life really suck";
list($firstName, $middlename, $lastName) = explode(" ", $string);
echo $firstName;
echo $middlename;
echo $lastName;
?>