Как получить первое слово предложения в PHP? - PullRequest
132 голосов
/ 19 марта 2010

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

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

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

Ответы [ 17 ]

2 голосов
/ 13 сентября 2010

лично strsplit / explode / strtok не поддерживает границы слов, поэтому для более аккуратного разделения используйте регулярное выражение с \w

preg_split('/[\s]+/',$string,1);

Это разделит слова с границами до предела 1.

1 голос
/ 28 июня 2018

Вы можете сделать это используя строковую функцию PHP substr без преобразования строки в массив.

 $string = 'some text here';
 $stringLength= strlen($string);
 echo ucfirst(substr($string,-$stringLength-1, 1));

// вывод S

1 голос
/ 19 марта 2010
$input = "Test me more";
echo preg_replace("/\s.*$/","",$input); // "Test"
1 голос
/ 27 мая 2016
public function getStringFirstAlphabet($string){
    $data='';
    $string=explode(' ', $string);
    $i=0;
    foreach ($string as $key => $value) {
        $data.=$value[$i];
    }
    return $data;
}
1 голос
/ 09 апреля 2013
$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

0 голосов
/ 25 апреля 2018

Функция, которая будет разбивать строку на две части, первое слово и оставшуюся строку.

Возвращаемое значение: Будет иметь значения 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;
}
0 голосов
/ 19 марта 2010
$str='<?php $myvalue = Test me more; ?>';
$s = preg_split("/= *(.[^ ]*?) /", $str,-1,PREG_SPLIT_DELIM_CAPTURE);
print $s[1];
...