Я хочу извлечь первое слово переменной из строки. Например, возьмем этот вход:
<?php $myvalue = 'Test me more'; ?>
Результирующий вывод должен быть Test
, который является первым словом ввода. Как я могу это сделать?
Вы можете использовать функцию explode следующим образом:
$myvalue = 'Test me more';
$arr = explode(' ',trim($myvalue));
echo $arr[0]; // will print Test
$input = "Test me more"; echo preg_replace("/\s.*$/","",$input); // "Test"
<?php
$value = "Hello world";
$tokens = explode(" ", $value);
echo $tokens[0];
?>
Просто используйте explode для получения каждого слова из входных данных и выведите первый элемент полученного массива.
Если у вас 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, который имеет так много ответов, что я не буду утруждать себя указанием, как это сделать.
Существует строковая функция ( strtok ), которую можно использовать для разделения строки на более мелкие строки ( токены ) на основе некоторых разделителей. Для целей этой цепочки первое слово (определенное как любое слово перед первым пробелом) Test me more
может быть получено путем токенизации строки на пробеле.
<?php
$value = "Test me more";
echo strtok($value, " "); // Test
?>
Дополнительные сведения и примеры см. На странице руководства strtok PHP .
Вы можете сделать
echo current(explode(' ',$myvalue));
Используя функцию split, вы также можете получить первое слово из строки.
<?php
$myvalue ="Test me more";
$result=split(" ",$myvalue);
echo $result[0];
?>
$str='<?php $myvalue = Test me more; ?>';
$s = preg_split("/= *(.[^ ]*?) /", $str,-1,PREG_SPLIT_DELIM_CAPTURE);
print $s[1];