문자열 관련 함수

문자열 관련 함수

■문자열의 길이

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