일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프레임워크
- 우분투 20.04
- 업비트
- Laravel
- Ubuntu 20.04
- 제주도
- ubuntu
- 옵G
- 셀레니움
- php
- 옵티머스 g
- 맥
- 회고
- Raspberry Pi
- TiL
- 코드이그나이터
- C
- 옵티머스g
- 20.04
- codeigniter
- 옵지
- 라즈베리파이
- MySQL
- FMS
- Selenium
- 라즈비안
- upbit
- 맛집
- 우분투
- 라라벨
- Today
- Total
평범한 이야기들
[PHP] php 문자열 함수 본문
붉은색은 자주 쓰는 함수
▶ 문자열 다듬기
- trim(), ltrim(), chop()에서 지우는 공백은 스페이스, '\n'(줄바꿈), '\t'(가로 탭), '\v',
○ trim();
- 문자열의 처음과 끝에 있는 공백을 지운다.
○ ltrim();
- 문자열의 처음에 있는 공백을 지운다.
○ chop();
- 문자열의 끝에 있는 공백을 지운다.
▶ 문자열 정돈
○ nl2br();
- 문자열중 줄바꿈문자(\n)를 XHTML에서의 줄바꾸기인 <br/>태그로 바꾸어 준다.(4.0.5 이전의 HTML에서는 <br>태그)
▶ 문자열의 대소문자 관련 함수
○ strtoupper();
- 모든 알파벳을 대문자로
○ strtolower();
- 모든 알파벳을 소문자로
○ ucfirst();
- 문장의 처음이 알파벳이면 그것만 대문자로
○ ucword();
- 각 단어의 첫 알파벳을 대문자로
▶ 문자열 나누고 합치기
○ explode();
- 지정 문자를 기준으로 문자열의 전, 후를 나누어 배열로 저장한다.
ex) $email = 'email@email.com'; $email_array = explode('@', $email);
$email_array[0] → 'email'; $email_array[1] → 'email.com';
○ implode();, join();
- 지정 문자를 기준으로 배열을 전, 후에 배치하여 문자열을 합친다.
ex) $new_email = implode('@', email_array); $new_email → 'email@email.com';
○ strtok();
- 지정 토큰문자로 토큰화 해서 구분
ex)
$token = strtok($feedbak, ' ') // 처음 토큰화 하기
echo $token.'<br />';
while ($token!= ''){
$token = strtok(' '); // 두번째 토큰화 (토큰화하고 싶은)
echo $token.'<br />';
}
○ substr();
- 문자열 중 특정 시작부분과 끝부분 사이의 문자열을 추출하는데 사용한다.
ex) $test = 'PHP Webprogramming';
$test1 = substr($test, 1); $test2 = substr($test, -1); $test3 = substr($test, 5, 8); $test4 = substr($test, 4, -2);
$test1 → 'HP Webprogramming'(앞에서 1번 부터)
$test2 → 'g'(뒤에서 1번 부터)
$test3 → 'ebprogra'(앞에서 5번부터 8개)
$test4 → 'Webprogrammi'(앞에서 4번부터 뒤에서 2번까지)
▶ 문자열 비교하기
○ strcmp();
- C언어에서의 함수와 같다. 앞의 문자열을 기준으로 같으면 0을, 우선순위가 높으면 -1을, 반대의 경우에는 1을 리턴한다.
- 단, 대문자와 소문자의 경우 소문자가 우선순위가 더 높다.(ASCII코드의 대소관계를 생각하면 쉽다.)
○ strcasecmp();
- C언어에서의 stricmp()와 같다. 두 문자열을 비교하는 것은 strcmp()와 같지만 대소문자를 구분하지 않는다.
○ strnatcmp(); & strnatcasecmp();
- 이 두 함수는 문자열을 좀더 자연스러운 기준에서 비교한다.(strnatcmp("12","2")의 결과는 1이다.)
- 이 두 함수의 차이는 대소문자의 구분여부이다.(이 두 함수의 차이는 case의 유무여부이다.)
▶ 문자열의 길이 확인하기
○ strlen();
- C언어에서의 함수와 같다. 문자열의 길이를 정수값으로 리턴해준다.
▶ 문자열 안에서 문자열 찾기
○ strstr();
- 문자열 안에서 특정 문자열과 일치하는 부분이 있는지 찾아내는데 쓰이는 함수이다.
- 일치하는 문자열이 있을 때는 해당 문자열이나 문자를 포함하여 이후 문자열을 리턴한다.
- 일치하는 문자열이 없을 시에는 false를 리턴한다.
ex) $str='Lion sleep to night'; $res = strstr($str, 'sleep');
$res → 'sleep to night'
○ stristr();
- strstr()과 같으나 대소문자를 구분하지 않는다.(ABC, Abc, aBC모두 같은 것으로 취급한다.)
○ strchr();
- strstr()과 같으나 문자열대신 문자를 찾는다.
○ strrch();
- strchr()과 같으나 뒤에서 부터 일치하는 문자를 찾기 때문에 마지막으로 나타난 문자부터 문자열을 출력한다.
▶ 문자열의 위치 찾아내기
○ strpos();
- 문자열 내에서 일치하는 문자열이나 문자를 찾아 문자열 대신 해당 위치를 숫자로 알려준다.
ex) $test = 'Ice cream'; $res1 = strpos($test, 'a'); $res2 = strpos($test, 'e');
$res1 → 7(0부터 시작한다.) $res2 = 2(일치하는 문자나 문자열이 많을 경우 가장 앞의 것을 기준으로 한다.)
ex) $test = 'Ice cream'; $res = strpos($test, 'e', 4);
$res = 6(앞에서부터 4번째에 있는 c부터 해당문자열의 위치를 찾는다.)
○ strrpos();
- strpos와 비슷하나 찾는 문자가 가장 마지막에 보이는 곳의 위치를 리턴한다.
※ 두 함수 모두 만약 문자열에 needle(찾는 문자나 문자열)이 없으면 false를 리턴하는데 PHP에서는 false를 0과 같다고 보기 때문에
위치 0을 리턴한것인지 false를 리턴한 것인지 구분할 수가 없다. 이 문제는 === 연산자를 사용하여 해결할 수 있다.
ex) $res = strpos('Hello world', 'H'); //이 경우에는 가장 앞에 'H'가 있기 때문에 0을 리턴하지만 PHP는 false와 구분하지 못한다.
if($res === false)
echo 'Not found';
else
echo 'Found at position 0';
▶ 문자열 대체하기
○ str_replace();
- 문자열에서 문자열를 찾아 대체문자열로 바꾸어 리턴한다.
ex) $test = 'Change'; $res = str_replace('g', 'c', $test);
$res → 'Chance'
○ substr_replace();
- 특정 위치의 문자열을 대체문자열로 바꾸어 리턴한다.
ex) $test = 'Vitamin A'; $res = substr_replace($test, 'C', -1);
$res → 'vitamin C'