on
문자열 관련 함수
문자열 관련 함수
■문자열의 길이
strlen() : 전달받은 문자열의 길이를 반환한다.
$str = "12345678"; echo strlen($str); // 8
한글이 포함된 문자열은 mb_strlen()을 사용하고, 두 번째 인수(default : 내부 인코딩 방식)로 인코딩 방식을 전달해야 정확한 문자열의 길이를 반환한다.
$str = "한글로된문자열"; echo strlen($str); // 7 * 3 = 21 echo mb_strlen($str); // 7 * 3 = 21 echo mb_strlen($str, "UTF-8"); // 7
■문자열 비교하기
strcmp() : 전달받은 두 개의 문자열을 서로 비교한다.(대소문자 구분)
ex) strcmp(문자열1, 문자열2)
문자열1 > 문자열2 : 양수
문자열1 = 문자열2 : 0
문자열1 > 문자열2 : 음수
strcasecmp() : 대소문자를 구분하지 않고 두 개의 문자열을 비교한다.
strnatcmp()는 strcmp()와 비슷하고, strnatcasecmp()는 strcasecmp()와 비슷하지만, 영숫자 순으로 비교한다.
echo strcmp("abc", "ABC"); // 양수 echo strcasecmp("abc", "ABC"); // 0 echo strcmp("2", "10"); // 양수 echo strnatcmp("2", "10"); // 음수
■특정 문자열 검색
strstr(), strchr() : 해당 문자열에서 전달받은 문자열과 처음으로 일치하는 부분을 찾아, 그 부분을 포함한 이후의 모든 문자를 같이 반환하고, 일치하는 부분이 없으면 false를 반환한다.
strrchr() : 해당 문자열에서 전달받은 문자열과 마지막으로 일치하는 부분을 포함한 이후의 모든 문자를 반환한다.
stristr() : 대소문자를 구분하지 않고 strstr()와 같은 동작을 수행한다.
echo strstr("ABCabcDEFabc", "abc"); // abcDEFabc echo strrchr("ABCabcDEFabc", "abc"); // abc echo stristr("ABCabcDEFabc", "abc"); // ABCabcDEFabc
■특정 문자열 위치 찾기
strpos() : 해당 문자열에서 전달받은 문자열과 처음으로 일치하는 부분의 시작 인덱스를 반환한다.
strrpos() : 전달받은 문자열과 마지막으로 일치하는 부분의 인덱스를 반환한다.
echo strpos("ABCabcDEFabc", "abc"); // 3 echo strrpos("ABCabcDEFabc", "abc"); // 9
■문자열 추출하기
substr() : 특정 인덱스부터 전달받은 길이만큼의 일부분을 추출하여 반환한다.
$str = "Hello, World!"; echo substr($str, 3); // 네 번째 문자부터 끝까지 출력 lo, World! echo substr($str, -3); // 끝에서부터 세 글자 출력 ld! echo substr($str, 1, 5); // 두 번째 문자부터 다섯 글자 출력 ello, echo substr($str, 1, -5); // 두 번째 문자부터 뒤에서 여섯 번째 문자까지 출력 ello, W
■문자열 대소문자 바꾸기
strtolower() : 전달받은 문자열의 모든 문자를 소문자로 변환한다.
strtoupper() : 전달받은 문자열의 모든 문자를 대문자로 변환한다.
ucfirst() : 첫 번째 문자만 대문자로 변환한다.
ucwords() : 단어별로 첫 번째 문자만 대문자로 변환한다.
echo strtolower("HELLO, WORLD!"); // hello, world! echo strtoupper("hello, world!"); // HELLO, WORLD! echo ucfirst("hello, world!"); // Hello, world! echo ucwords("hello, world!"); // Hello, World!
■문자열 합치고 나누기
explode() : 특정 문자를 기준으로 전달받은 문자열을 나누어 하나의 배열로 반환한다.
implode() , join() : 전달받은 배열의 각 요소를 특정 문자를 사용하여 하나로 합쳐진 문자열을 반환한다.
strtok() : 전달받은 문자열을 특정 문자를 기준으로 한 번에 하나씩만 토큰화한다.
$str = "hello, beautiful, world!"; $array = explode(',', $str); // ','를 기준으로 문자열을 나눔. echo $array[0]; // hello echo $array[1]; // beautiful echo $array[2]; // world! $str2 = implode('!', $array); // '!'를 기준으로 문자열을 결합함. echo $str2; // hello! beautiful! world! $token = strtok($str2, '!'); // '!'를 기준으로 토큰화 echo $token; // hello while($token != ""){ // 문자열이 끝날 때까지 $token = strtok('!'); // '!'를 기준으로 토근화하고 출력함. echo $token; // beautiful, world }
■문자열 대체하기
str_replace() : 전달받은 문자열을 모두 찾은 후에, 찾은 문자열을 대체 문자열로 교체한다.
substr_replace() : 특정 위치의 문자들을 대체 문자열로 교체한다.
$str = "hello, world!"; echo str_replace('o', '*', $str); // 문자열의 모든 'o'를 '*'로 대체함. echo substr_replace($str, '*', 2); // 세 번째 문자부터 끝까지를 '*'로 대체함. echo substr_replace($str, '*', -2); // 끝에서 두 번째 문자부터 끝까지를 '*'로 대체함. echo substr_replace($str, '*', 2, 4); // 세 번째 문자부터 네 글자를 '*'로 대체함. echo substr_replace($str, '*', 2, -4); // 세 번째 문자부터 끝에서 다섯 번째 문자까지를 '*'로 대체함. echo substr_replace($str, '*', 2, 0); // 두 번째 문자 뒤에 '*'을 삽입함.
■문자열 다듬기
ltrim() : 문자열 앞부분에 있는 공백을 제거한다.
rtrim(), chop() : 문자열 끝부분에 있는 공백을 제거한다.
trim() : 문자열의 처음과 끝부분에 있는 공백을 모두 제거한다.
제거대상(" ", "\t", "
", "\r", "\0", "\x0B")
$str = " hello, world! "; echo "'".ltrim($str)."'"; // 문자열의 처음 부분 공백을 모두 지움. echo "'".rtrim($str)."'"; // 문자열의 끝부분 공백을 모두 지움. echo "'".trim($str)."'"; // 문자열의 처음과 끝부분 공백을 모두 지움.
from http://woong971.tistory.com/17 by ccl(A) rewrite - 2021-10-22 15:26:38