17 ответов:
можно использовать взрываться следующим образом:
$myvalue = 'Test me more'; $arr = explode(' ',trim($myvalue)); echo $arr[0]; // will print Test
есть строковая функция (функции strtok) который может быть использован для разделения строки на более мелкие строки (маркеры) на основе некоторых разделителей. Для целей этого потока первое слово (определяемое как что-либо перед первым пробелом)
Test me moreможно получить с помощью маркирования строка на символ пробела.<?php $value = "Test me more"; echo strtok($value, " "); // Test ?>дополнительные сведения и примеры см. В разделе элемент strtok PHP страница руководства.
если у вас есть 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, который имеет так много ответов, используя его, я не буду указывать, как сделать его.
хотя это немного поздно, но PHP имеет одно лучшее решение для этого:
$words=str_word_count($myvalue, 1); echo $words[0];
только в случае, если вы не уверены, что строка начинается со слова...
$input = ' Test me more '; echo preg_replace('/(\s*)([^\s]*)(.*)/', '', $input); //Test
<?php $value = "Hello world"; $tokens = explode(" ", $value); echo $tokens[0]; ?>просто используйте explode, чтобы получить каждое слово ввода и вывода первого элемента результирующего массива.
С помощью функции split также можно получить первое слово из строки.
<?php $myvalue ="Test me more"; $result=split(" ",$myvalue); echo $result[0]; ?>
похоже на принятый ответ с одним шагом меньше:
$my_value = 'Test me more'; $first_word = explode(' ',trim($my_value))[0]; //$first_word == 'Test'
лично
strsplit/explode/strtokне поддерживает границы слов, поэтому для получения более точного разделения используйте регулярное выражение с\wpreg_split('/[\s]+/',$string,1);это разделило бы слова с границами до предела 1.
$string = ' Test me more '; preg_match('/\b\w+\b/i', $string, $result); // Test echo $result; /* You could use [a-zA-Z]+ instead of \w+ if wanted only alphabetical chars. */ $string = ' Test me more '; preg_match('/\b[a-zA-Z]+\b/i', $string, $result); // Test echo $result;С уважением, Ciul
public function getStringFirstAlphabet($string){ $data=''; $string=explode(' ', $string); $i=0; foreach ($string as $key => $value) { $data.=$value[$i]; } return $data; }
$str='<?php $myvalue = Test me more; ?>'; $s = preg_split("/= *(.[^ ]*?) /", $str,-1,PREG_SPLIT_DELIM_CAPTURE); print $s[1];
функция, которая будет маркировать строку на две части, первое слово и оставшуюся строку.
Возвращаемое Значение: будет
firstиremainingключ в$returnмассив соответственно. первая проверкаstrpos( $title," ") !== falseобязателен в случае, когда строка содержит только одно слово и нет места в нем.function getStringFirstWord( $title ){ $return = []; if( strpos( $title," ") !== false ) { $firstWord = strstr($title," ",true); $remainingTitle = substr(strstr($title," "), 1); if( !empty( $firstWord ) ) { $return['first'] = $firstWord; } if( !empty( $remainingTitle ) ) { $return['remaining'] = $remainingTitle; } } else { $return['first'] = $title; } return $return; }
вы можете сделать это с помощью PHP Строковой функции substr без преобразования строки в массив.
$string = 'some text here'; $stringLength= strlen($string); echo ucfirst(substr($string,-$stringLength-1, 1));//выход S
Comments