One Step Ahead

PHP 문자열 함수 본문

공부중인것&잘까먹는것/PHP,MYSQL,JavaScript

PHP 문자열 함수

소피st 2018. 7. 26. 00:12

PHP 초보 입장에서는 가장 많이 쓰는 함수중에 하나일것이다.

문자열을 비교하거나 추출하거나 가공해서 활용할때 가장많이 쓰이고 유용하다.

하지만 나는 취미이다보니 아주 가끔 사용한다. 그러다 보니 검색해서

사용하고 그리곤 바로 머리속에서 삭제된다. 

그래서 몇가지 기록을 해야겠다.

누군가가 잘정리 한것을 나에게 맞게 요약했다.


1. 공백처리 함수 - 줄바꿈, 스페이스, 탭 삭제

$string = trim($text) - 문자열 앞,뒤 공백 지움

$string = ltrim($text) - 문자열 앞 공백 지움

$string = chop($text) - 문자열 뒤 공백 지움

$string = nl2br($text) - 줄바꿈(\r,\n) 문자를 <br> 태그로 변환


2. 대소문자 변경

$string = strtoupper($text) - 대문자로 변경

$string = strtolower($text) - 소문자로 변경

$string = ucfirst($text) - 첫단어가 영문이면 그것만 대문자로 변경

$string = ucword($text) - 각 단어의 첫 영문자를 대문자로 변경


3. 문자열 길이

$string = strlen($text) - 문자열의 길이 값구하기


4. 문자열 치환

$string = str_replace($str1, $str2, $문자열) - 문자열에서 $str1 을 찾아 $str2 로 바꿔서 $string 에 저장

$string = substr_replace($문자열, $str1, 인덱스) - 문자열의 인덱스에 있는 문자를 $str1 로 바꿔서 $string 에 저장

인덱스0부터 시작함. 


5. 문자열 비교

$string = strcmp($str1,$str2) - $str1 과 $str2 두 문자열을 비교

각 문자열의 인덱스 순서대로 비교. 일치하면 0 을 반환하고 

$str1 이 더 길거나 ASCII 값이 더 크면 양수(+), $str2 가 더 길거나 ASCII 값이 더 크면 음수(-)를 반환.

$string = strcasecmp($str1,$str2) - strcmp와 기능은 같고 대소문자 구분안함.


6. 문자열찾기

$string = strstr($원본문자열, $찾을문자열) - $원본문자열 에서 $찾을문자열을 찾는 함수

찾는 문자열이 있을경우 $string 에는 찾는 문자열을 포함해서 그 뒤의 문자열이 저장됨.

찾는 문자열이 없을경우 결과값 $string 에는 false (boolean) 값이 저장됩니다. 논리연산(!== , ===) 필요.


예제) 

$string = strstr("가나다라마바사", "다라"); 

echo $string;

결과값 = 다라마바사


$string = stristr($원본문자열, $찾을문자열) - strstr 함수와 같으나 대소문자 구분안함.

$string = strchr($원본문자열, $찾을문자) - $원본문자열 에서 $찾을문자를 찾는 함수입니다. 결과값은 strstr 과같다.

$string = strrchr($원본문자열, $찾을문자) - $원본문자열의 뒷부분 부터 $찾을문자를 찾는 함수입니다. 결과값은 strstr과 같다.


7. 문자열 내의 위치찾기

$string = strpos($원본문자열, $찾을문자열) - $원본문자열에서 $찾을문자열을 찾는 함수

strstr 과 기능은 같고 결과값이 $원본문자열의 정수형 인덱스 (0 부터시작)

찾을문자열이 없는경우 false 를 리턴합니다.

찾을문자열이 원본문자열의 맨처음에 있는경우 결과값은 0 입니다.

단순비교연산자를 쓰면 0 , false 모두 같은값으로 간주하기때문에 주의하셔야됩니다. (아래 주의 참고)

주의) strpos 등의 문자나 문자열을 찾는 함수의 경우 , 찾지 못했을때 결과값은 false입니다.

PHP 에서 == 등의 비교연산은 0 , false 모두 0 으로 간주하기때문에 이때는 논리비교연산(=== , !==)을 써야됩니다.

$string === false (0) , $string == false (X)

$string !== false (0) , $string != false (X)

예제) $string = strpos("가나다라마바사","라"); 결과값 $string = 3


$string = strrpos($원본문자열, $찾을문자) - $원본문자열의 뒷부분 부터 $찾을문자를 찾는 함수입니다.

strrpos는 찾을문자열 대신 찾을문자만 써야됩니다. 결과값은 strpos와 같습니다.


8. 문자열 자르기


$string = substr($원본문자열, $찾을위치, 갯수) - $원본문자열에서 $찾을위치의 인덱스로부터 갯수만큼의 문자열을 잘라서 반환합니다.

다양한 방법으로 활용할 수 있습니다.

예제)

$original_str = "It's hard to be in other's shoes.";

$string = substr($original_str, 5) -> $string = "hard to be in other's shoes." , 맨앞(0)의 5번 위치부터

$string = substr($original_str, -2) -> $string = "s." , 맨뒤에서부터의 인덱스 2 만큼

$string = substr($original_str, 5, 4) -> $string = "hard" , 5번 위치부터 4개

$string = substr($original_str, 5, -8) -> $string = "hard to be in other's" , 5번 위치부터 뒤에서 8번째 까지


9. 문자열을 잘라 배열로 저장


explode( 구분문자 , 자를 문장); 


$string = "사과;바나나;고양이;개";

$str = explode( ';' , $string); 


 "사과;바나나;고양이;개" 를 ';' 구분문자를 이용하여 자른 후, $str 배열로 저장 

$str[0] = 사과

$str[1] = 바나나

$str[3] = 고양이

$str[4] = 개 


더 생각날때 마다 수정하겠다.

Comments