Как найти пространство в строке Php?

Я хотел бы знать, как искать пространство в Php
Например, у меня есть $Studentname и это ценность Джон Грин. я хочу иметь $Name (со значением Джон) И $Surname(Со значением Green). Но я не знаю, как искать пространство в строке.
заранее спасибо

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
    ?>
    

Примечание. — Что произойдет, если пользователь введет имя типа «Джон Грин Смит» или «Джон (более одного пробела) Грин». Вот почему первый пункт.

1

Другие решения

С помощью 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)

Это все еще будет неверно некоторое время, но больше фамилий имеют пробелы, чем имена. В идеале, если вы собираете данные формы, используйте два разных поля для имени и фамилии, но даже это не всегда идеально, в некоторых культурах существуют разные способы работы с именами, которые не так просты, как фамилия и имя.

Вот список распространенных ошибок при работе с именами

4

Вы можете использовать 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) с одним пробелом.

1

чтобы получить имя и имя пользователя от имени студента, следуйте этому

$Studentname = 'John Green';
$name = explode(' ',$Studentname);
$firstname = $name[0]; //output john
$lastname = $name[1]; //output green
0
По вопросам рекламы [email protected]