[php] PHP에서 문장의 첫 단어를 얻는 방법?

문자열에서 변수의 첫 단어를 추출하고 싶습니다. 예를 들어 다음 입력을 사용하십시오.

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

결과 출력은 Test입력의 첫 단어 인 이어야합니다 . 어떻게해야합니까?



답변

다음과 같이 분해 기능을 사용할 수 있습니다 .

$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를 사용하면 대답을 너무 많이 사용하여 어떻게 해야하는지 지적하지 않아도됩니다.


답변

넌 할 수있어

echo current(explode(' ',$myvalue));


답변

비록 늦었지만 PHP는 이것에 대한 하나의 더 나은 해결책을 가지고 있습니다.

$words=str_word_count($myvalue, 1);
echo $words[0];


답변

한 번의 적은 단계로 허용되는 답변과 유사합니다.

$my_value = 'Test me more';
$first_word = explode(' ',trim($my_value))[0];

//$first_word == 'Test'


답변

문자열이 단어로 시작하는지 확실하지 않은 경우를 대비하여 …

$input = ' Test me more ';
echo preg_replace('/(\s*)([^\s]*)(.*)/', '$2', $input); //Test