문자열에서 처음 5자를 얻는 방법


답변:


549

대한 단일 바이트 문자열 (예 : US-ASCII, ISO 8859 가족 등) 사용 substr및 대한 멀티 바이트 문자열 (예 : UTF-8, UTF-16 등) 사용 mb_substr:

// singlebyte strings
$result = substr($myStr, 0, 5);
// multibyte strings
$result = mb_substr($myStr, 0, 5);

2
덕분에, 이것은 내가 그것을 필요한 것입니다 :if(substr($myURL, 0, 4) == "www.") $myURL = preg_replace('/www./', '', $myURL, 1);
shanehoban

1
실제로 str_replace ( 'www.', '', $ url) 만 있으면됩니다. 존재하는지 확인할 필요가 없습니다.
더그 캐시디

8
@ DougCassidy : 만약 그렇다면 $url = "www.subwww.myweirddomainwww.com"? 에 대한 초기 점검 없이는 substr($url, 0, 4)반환 $url이 망가졌습니다 !!
Fr0zenFyr

46

사용 substr():

$result = substr($myStr, 0, 5);

substr("Häagen-Dazs", 0, 5) == "Häag"- 내가 뭘 잘못하고 있죠?
user187291

12
@stereofrog : 아마도 UTF-8과 같은 멀티 바이트 문자 인코딩을 사용하고있을 것입니다. 이 경우을 사용하십시오 mb_substr.
Gumbo

20

하나의 문자 만 얻는 다른 방법입니다.

$str = 'abcdefghij';

echo $str{5};

7
이것은 잘못된 질문에 대한 정답입니다. 공감.
mickmackusa

복사 붙여 넣기 이상이 필요하기 때문에?
Robert Pounder

참고 : UTF-8과 같은 멀티 바이트 문자 세트의 경우 대신 문자 를 사용하는 mb_substr(i, 1)데 사용해야 합니다 i. @RobertPounder-두 개 이상의 문자를 가져 오기 때문에 확장되지 않습니다.
ToolmakerSteve

1
당신이 그렇게 말한다면 @ToolmakerSteve; $string = "Häagen-Dazs"; $stringFirstChars = function($amount, $string) { $i=0;$done=false;$return = '';while($done == false) {$return.=$string{$i};if($amount===$i)$done=true;$i++;}return $return;}; var_dump($stringFirstChars(5, $string)); (phptester.net 붙여 넣 복사 또는 우리)
로버트 포를 쏴

네 알아요 나는 개인적으로 그것을 내려 놓지 않았다. 방금 질문에 대답하지 않는 방식으로 관찰했습니다. 당신이 쓴 것- 그것은 완전한 대답 일 것입니다 : PHP에서 초보자가 하나의 문자를 여러 문자로 얻는 방법을 보여줍니다. Q & A에 유용한 추가 기능-감사합니다.
ToolmakerSteve

15

다음 substr과 같은 기능을 사용할 수 있습니다 .

echo substr($myStr, 0, 5);

두 번째 인수 substr는 시작하려는 위치와 세 번째 인수는 반환하려는 문자 수에 대한 것입니다.


-4

substr ()을 사용하여 결과를 얻을 수 있습니다 .

구문 substr (문자열, 시작, 길이)

<?php
$myStr = "HelloWordl";
echo substr($myStr,0,5);
?>

출력 :

 Hello

16
이 매우 늦게 게시 된 게시물은 아무런 가치가 없으며 단순히 페이지의 모든 내용이 이미 언급 되었기 때문에 페이지를 부풀립니다. 독특하고 가치있는 것을 추가하지 않는 한 답변을 게시하지 마십시오. 쓸모없고 늦은 게시물을 피하기 위해이 답변을 하향 조정했습니다.
mickmackusa

7 년 후에 답변을 게시 했습니까? 진심이야?
Varin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.