Печатая Строку, пока не будет найден пробел


я Получаю Строку через input и делаю вставки в базу данных. Когда я перечисляю, я хочу только имя первого человека, или до тех пор, пока не будет найден первый пробел. Есть ли функция, которая это делаете?

 15
Author: Alexandre Cartaxo, 2015-11-11

8 answers

, Можно использовать функцию strstr()"), поскольку она retona только первую часть этой строки. По умолчанию возвращаемое значение находится в правой ограничитель. Чтобы изменить это, то есть получить значение слева сообщите true третий аргумент($befero_needle)

$str = "João da Silva Sauro";
echo strstr($str, ' ', true);

Выход:

João

О explode() ни один из ответов сказал, что с php5.4 можно вернуть индекс желаемое уже в вызове функции.

$str = "João da Silva Sauro";
echo explode(' ', $str)[0];
 23
Author: rray, 2017-04-10 10:27:43

Например:

$nome_completo = "Ciclano Fulano";
$palavras = explode(" ", $nome_completo);
$primeiro_nome = $palavras[0];

print_r($primeiro_nome);

Результат:

Ciclano

 15
Author: Giancarlo Abel Giulian, 2015-11-11 19:08:17

- разному:

$str = 'John Doe';

echo substr($str, 0, strpos($str.' ', ' '));
 15
Author: Daniel Omine, 2015-11-11 20:10:54

Может выглядеть следующим образом:

$string = "Nome Completo";
$string = explode(" ", $string);
echo $string[0];

В Этом случае, отображается только "имя"

 13
Author: Sr. André Baill, 2015-11-11 19:08:21

Да, только этот пример:

// aqui é o campo caminho que vai retornar da consulta.

$caminho ="Faturamento Cupom";
echo "Caminho a ser quebrado<br>".$caminho;
$string = explode(' ', $caminho);

echo "vou imprimir só a primeira parte do caminho ".$string[0];

Для печати ultima часть https://pt.stackoverflow.com/a/97629/35597

 12
Author: HENRIQUE LOBO, 2017-04-13 12:59:44

Один из многих способов, это

$nome = 'João da Silva';
echo preg_replace("#^([^\s]*)\s.*?$#", "$1", $nome); // Exibe João

$nome = 'José';
echo preg_replace("#^([^\s]*)\s.*?$#", "$1", $nome); // Exibe José
 12
Author: Marcos Regis, 2015-11-11 19:12:43

Там она может обидно :'(

, Забыли упомянуть функцию (не столь известных) strtok.

См. там:

$nome = 'Wallace de Souza Vizerra';

echo strtok($nome, ' ')

Выход будет: "

"Wallace"

Другой пример, на более поздних версиях PHP 5.4, вам больше не нужно присвоить переменной explode, чтобы после печати, индекс 0. Достаточно:

$nome = "wallace de souza";
echo explode(' ', $nome)[0]
 5
Author: Wallace Maxters, 2015-12-11 15:09:29

Сначала очистите пробелы слева.

Затем, если ввод пользователя, он может ввести "другие символы, которые не являются пробелы", такие как знак невидимого, ENTER или TAB. Или, может быть, он просто введите первое имя, то же, поэтому использование простых функций PHP не будет работать. Используйте регулярное выражение. Следующий код:

<?php

// Sua string
$str = ' Márcio jalber';

// Limpa espaços em branco
$strLimpa = ltrim( $str, " \t\n" );

// Limpa a string
$strFinal = preg_replace( '/(.*?)[\n\t\s].*/', '\1', $strLimpa );
 0
Author: Marcio Jalber, 2015-12-08 12:47:19