Как получить первое слово предложения в PHP?

Я хочу извлечь первое слово переменной из строки. Например, возьмем этот вход:

<?php $myvalue = 'Test me more'; ?>

Результирующий вывод должен быть Test, который является первым словом ввода. Как я могу это сделать?

139
задан hippietrail 17 September 2014 в 06:53
поделиться

8 ответов

Вы можете использовать функцию explode следующим образом:

$myvalue = 'Test me more';
$arr = explode(' ',trim($myvalue));
echo $arr[0]; // will print Test
228
ответ дан 23 November 2019 в 23:16
поделиться
$input = "Test me more";
echo preg_replace("/\s.*$/","",$input); // "Test"
1
ответ дан 23 November 2019 в 23:16
поделиться
<?php
  $value = "Hello world";
  $tokens = explode(" ", $value);
  echo $tokens[0];
?>

Просто используйте explode для получения каждого слова из входных данных и выведите первый элемент полученного массива.

4
ответ дан 23 November 2019 в 23:16
поделиться

Если у вас PHP 5.3

$myvalue = 'Test me more';
echo strstr($myvalue, ' ', true);

обратите внимание, что если $myvalue является строкой с одним словом, то strstr не возвращает ничего в этом случае. Решением может быть добавление пробела к тестовой строке:

echo strstr( $myvalue . ' ', ' ', true );

Это всегда будет возвращать первое слово строки, даже если в строке всего одно слово

Альтернативой может быть что-то вроде:

$i = strpos($myvalue, ' ');
echo $i !== false ? $myvalue : substr( $myvalue, 0, $i );

Или использование explode, который имеет так много ответов, что я не буду утруждать себя указанием, как это сделать.

36
ответ дан 23 November 2019 в 23:16
поделиться

Существует строковая функция ( strtok ), которую можно использовать для разделения строки на более мелкие строки ( токены ) на основе некоторых разделителей. Для целей этой цепочки первое слово (определенное как любое слово перед первым пробелом) Test me more может быть получено путем токенизации строки на пробеле.

<?php
$value = "Test me more";
echo strtok($value, " "); // Test
?>

Дополнительные сведения и примеры см. На странице руководства strtok PHP .

266
ответ дан 23 November 2019 в 23:16
поделиться

Вы можете сделать

echo current(explode(' ',$myvalue));
23
ответ дан 23 November 2019 в 23:16
поделиться

Используя функцию split, вы также можете получить первое слово из строки.

<?php
$myvalue ="Test me more";
$result=split(" ",$myvalue);
echo $result[0];
?>
4
ответ дан 23 November 2019 в 23:16
поделиться
$str='<?php $myvalue = Test me more; ?>';
$s = preg_split("/= *(.[^ ]*?) /", $str,-1,PREG_SPLIT_DELIM_CAPTURE);
print $s[1];
0
ответ дан 23 November 2019 в 23:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: