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
<?php
$value = "Hello world";
$tokens = explode(" ", $value);
echo $tokens[0];
?>
explode를 사용하여 입력의 모든 단어를 가져오고 결과 배열의 첫 번째 요소를 출력하십시오.
split 함수를 사용하면 문자열에서 첫 번째 단어를 얻을 수 있습니다.
<?php
$myvalue ="Test me more";
$result=split(" ",$myvalue);
echo $result[0];
?>
strtok
보다 빠르 extract
거나 preg_*
기능.
개인적으로 strsplit
/ explode
/ strtok
단어 경계를 지원하지 않으므로 더 정확한 분할을 얻으려면 정규 표현식을 사용하십시오.\w
preg_split('/[\s]+/',$string,1);
이렇게하면 경계가있는 단어가 1로 제한됩니다.
$ input = "추가 테스트"; echo preg_replace ( "/ \ s. * $ /", "", $ input); // "테스트"
$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;
}
문자열을 배열로 변환하지 않고 PHP 문자열 함수 substr을 사용하여 수행 할 수 있습니다.
$string = 'some text here';
$stringLength= strlen($string);
echo ucfirst(substr($string,-$stringLength-1, 1));
// 출력 S
$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;
}
참고 URL : https://stackoverflow.com/questions/2476789/how-to-get-the-first-word-of-a-sentence-in-php
'Programming' 카테고리의 다른 글
그래프 API를 사용하여 주식 수를 얻는 방법 (0) | 2020.06.23 |
---|---|
Windows 7에서 Python 경로 추가 (0) | 2020.06.23 |
MySQL“사이”조항이 포함되지 않습니까? (0) | 2020.06.23 |
Scala 프로젝트에서 sbt vs maven 사용의 장단점 (0) | 2020.06.23 |
사용자 정의 필드 용 데이터베이스를 설계하는 방법은 무엇입니까? (0) | 2020.06.23 |