如何在Php字符串中搜索空格?

时间:2016-01-24 10:10:57

标签: php html html5 whitespace spaces

我想知道如何在Php中搜索空间 例如,我有$Studentname,它的价值是John Green。我希望$Name(值约翰)和$Surname(值为绿色)。但我不知道如何在字符串中搜索空间。 提前致谢

4 个答案:

答案 0 :(得分:4)

在没有限制的情况下使用explode()会导致错误的结果。一些名字和姓氏都有空格。例如:

$name = explode(" ","Jan Van Riebeck");
echo $name[0]." ".$name[1]; // Jan Van (incorrect)


$name = explode(" ","St. John Westcox");
echo $name[0]." ".$name[1]; // St. John (incorrect)

使用explode()限制(因此它只返回2个项目),如下所示:

$name = explode(" ","Jan Van Riebeck",2);
echo $name[0]." ".$name[1]; // Jan Van Riebeck (correct)

有些时候这仍然是不正确的,但是更多的姓氏有空格而不是名字。理想情况下,如果您正在捕获表单数据,请使用两个不同的字段作为名字和姓氏,但即使这并不总是理想的,一些文化有不同的方式来命名工作并不像名字姓氏那么简单。

Here is a list在使用名称

时常见的陷阱

答案 1 :(得分:1)

您可以使用explode()函数将字符串拆分为数组,方法是使用空格作为分隔符:

$names = explode(" ", "John Smith");

但是,您可能想要考虑人们做傻事,比如在名字和姓氏之间加上双重空格,或者有前面或后面的空格。

您可以使用trim()删除尾随和前面的空格:

$fullName = " John Smith ";
$trimmedName = trim($fullName); // Assigns "John Smith"

您还可以使用preg_replace()删除名字和姓氏之间的多个空格:

$fullName = "John     Smith";
$cleanedName = preg_replace("/\s+/", " ", $fullName); // Assigns "John Smith"

以上代码将用一个空格替换一个或多个(+)个连续空格(\s)。

答案 2 :(得分:1)

第一个建议: -

  1. 在使用html表单时,尝试在两个不同的字段中使用名字和姓氏。

  2. 如果上述代码无法使用,请使用以下代码: -

    <?php
    
    $Studentname = 'John Green';
    $student_full_name = explode(' ',trim($Studentname));//trim to remove space from starting and ending and explode to break string when space found
    $first_name = $student_full_name[0];//output John
    $sur_name = $student_full_name[1];//output Green
    ?>
    
  3. 注意: - 如果用户输入“John Green smith”或“John(多个空格)Green”等名称,会发生什么。这就是为什么第一点。

答案 3 :(得分:0)

从学生姓名中获取姓名和用户名,请点击此

$Studentname = 'John Green';
$name = explode(' ',$Studentname);
$firstname = $name[0]; //output john
$lastname = $name[1]; //output green