如何在 Php 字符串中搜索 Space?
How to Search for Space in Php String?
我想知道如何在 Php 中搜索 Space
例如,我有 $Studentname
,它的值为 John Green。我想要 $Name
(价值 John) 和 $Surname
(价值 Green) 。但我不知道如何在 string 中搜索 space 。
提前致谢
要从学生姓名中获取姓名和用户名,请遵循此
$Studentname = 'John Green';
$name = explode(' ',$Studentname);
$firstname = $name[0]; //output john
$lastname = $name[1]; //output green
您可以使用explode()
函数将字符串分割成一个数组,使用space作为分隔符:
$names = explode(" ", "John Smith");
但是,您可能想要考虑到人们做一些愚蠢的事情,例如在名字和姓氏之间放置双 space,或者在 space 之前或之后。
您可以使用 trim()
删除尾随和前面的 spaces:
$fullName = " John Smith ";
$trimmedName = trim($fullName); // Assigns "John Smith"
您还可以使用 preg_replace()
去掉名字和姓氏之间的多个 space:
$fullName = "John Smith";
$cleanedName = preg_replace("/\s+/", " ", $fullName); // Assigns "John Smith"
以上代码将用单个 space.
替换一个或多个 (+
) 连续 spaces (\s
)
第一个建议:-
当您使用 html 表单时,尝试在两个不同的字段中使用名字和姓氏。
如果以上不可能,请使用以下代码:-
<?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
?>
注意:- 如果用户输入 "John Green smith" 或 "John(more than one space)Green" 这样的名称会发生什么情况。这就是为什么要做第一点。
不加限制地使用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()
(所以它只有returns 2 项),像这样:
$name = explode(" ","Jan Van Riebeck",2);
echo $name[0]." ".$name[1]; // Jan Van Riebeck (correct)
有时这仍然是不正确的,但更多的姓氏有空格而不是名字。理想情况下,如果您正在捕获表单数据,请为名字和姓氏使用两个不同的字段,但即使这并不总是理想的,一些文化有不同的名字工作方式,不像名字姓氏那么简单。
Here is a list 使用名称时的常见陷阱
我想知道如何在 Php 中搜索 Space
例如,我有 $Studentname
,它的值为 John Green。我想要 $Name
(价值 John) 和 $Surname
(价值 Green) 。但我不知道如何在 string 中搜索 space 。
提前致谢
要从学生姓名中获取姓名和用户名,请遵循此
$Studentname = 'John Green';
$name = explode(' ',$Studentname);
$firstname = $name[0]; //output john
$lastname = $name[1]; //output green
您可以使用explode()
函数将字符串分割成一个数组,使用space作为分隔符:
$names = explode(" ", "John Smith");
但是,您可能想要考虑到人们做一些愚蠢的事情,例如在名字和姓氏之间放置双 space,或者在 space 之前或之后。
您可以使用 trim()
删除尾随和前面的 spaces:
$fullName = " John Smith ";
$trimmedName = trim($fullName); // Assigns "John Smith"
您还可以使用 preg_replace()
去掉名字和姓氏之间的多个 space:
$fullName = "John Smith";
$cleanedName = preg_replace("/\s+/", " ", $fullName); // Assigns "John Smith"
以上代码将用单个 space.
替换一个或多个 (+
) 连续 spaces (\s
)
第一个建议:-
当您使用 html 表单时,尝试在两个不同的字段中使用名字和姓氏。
如果以上不可能,请使用以下代码:-
<?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 ?>
注意:- 如果用户输入 "John Green smith" 或 "John(more than one space)Green" 这样的名称会发生什么情况。这就是为什么要做第一点。
不加限制地使用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()
(所以它只有returns 2 项),像这样:
$name = explode(" ","Jan Van Riebeck",2);
echo $name[0]." ".$name[1]; // Jan Van Riebeck (correct)
有时这仍然是不正确的,但更多的姓氏有空格而不是名字。理想情况下,如果您正在捕获表单数据,请为名字和姓氏使用两个不同的字段,但即使这并不总是理想的,一些文化有不同的名字工作方式,不像名字姓氏那么简单。
Here is a list 使用名称时的常见陷阱