====== 문자열과 정규식 ======
{{page>language:php:php_문서_목차&noheader&nofooter&noeditbtn&firstseconly}}
====== 문자열 ======
===== mail() 함수 =====
mail( $toAddr, $... ); // 메일전송
php에 메일을 send하는 설정이 추가 되어 있어야 동작한다.
===== 문자열 다듬기 =====
| trim() | 문자열 앞,뒤 공백 제거 |
| ltrim() | 왼쪽의 공백 제거 |
| rtrim() | 오른쪽의 공백 제거 |
| nl2br() | "\n"을
로 변경 |
| print() | echo와 같은데, 리턴 값이 있다 |
| printf() \\ sprintf() | 포맷에 맞춰 스트링을 만든다. |
| vprintf() \\ vsprintf() | c 함수와 같다. |
| strtoupper() \\ strtolower() | 설명 필요? |
| ucfirst() | 문장 처음의 알파벳이면 그것만 대문자로 |
| ucwords() | 각 단어의 첫 알파벳을 대문자로 |
======== DB용 문자열 다듬기 =====
| addslash() | " -> \", '\' -> '\\', '\\' -> '\\\' 로 변경 (?) \\ 특수기호에 슬래쉬 기호를 붙여준다. |
magic_quotes_gpc 설정이 있으면 자동으로 추가된다.
===== 문자열 분리 =====
리턴된(array) = explode( '@', "nobody@kkkmail.com" );
|< 80% - - - ->|
^ return ^ 함수 이름 ^ ^ 구분자 ^ 분리할 문자열 ^ ^
| array 리턴 | explode | ( | '@', | $emailString | ); |
implode( '@', $emailArray );
$emailArray 배열의 문자열들을 '@'를 넣어서 합친다.
substr( $stringA, /*int*/$startPos, /*int*/ $len );
* $stringA 에서 $startPos 부터 $len 만큼 문자열 리턴.
* $startPos > 0 : $startPos 부터 오른쪽으로
* $startPos < 0 : $startPos 부터 왼쪽으로
| strcmp( $str1, $str2 ) | $str1이 $str2보다 순서상 뒤에 온다면 (크다면) 양수 리턴 |
| strnatcomp() | "12"가 "2"보다 크다와 같이, 사람의 기준에 맞춰서 비교 |
| strlen() | 문자열의 길이 리턴 |
| strstr() | 대소문자 구분해서, 문자열 찾기 |
| stristr() | 대소문자 구분 없이, 문자열 찾기 |
| strchr() | 대소문자 구분 없이 한글자 찾기 |
| strichr() | 대소문자 구분 해서, 한글자 찾기 |
| str_replace() | ? |
// $strA에서 $strB가 시작 되는 위치
strpos( $strA, $strB, $needle, /*int*/ $offset );
// $strA를 $strB로 변경
substr_replace( $strA, $strB, /*int*/ $startPos, /*int*/ $len );
======= 정규식 =====
php 에서는 작은 따옴표에 넣는다. 쌍따옴표(\")는 php가 임의 해석할 수 있다.
===== 정규식 기호 =====
. 한글자 아무거나
[ ,] 괄호 안의 패턴 모두, (그래봐야 한글자)에 대한 패턴
[^ , ] 괄호 안의 패턴이 아닌 것에 대해서
* 패턴이 0번 이상
+ 패턴이 1번 이상
(, ) 부분 표현식. 괄호 안의 식을 먼저 처리
? 하위 표현식을 옵션으로 처리
{ } 반복과 반복 회수 제한
{ 3 } -> 3번만
{ 2, 4 } -> 2 ~ 4회만.
^ 문자열 시작 부분이 조건식과 같다면이라는 뜻, 문자열 처음 시작부분만 해당된다.
^bob -> bob로 시작되는 스트링
$ 문자열의 끝에 조건식과 같다면..이라는 뜻, 문자열 끝 부분만 해당된다.
com$ -> com으로 끝나는 스트링
| 선택(or)
com|edu|net
특수문자 '\' 다음에 입력하면 기호로 인식
===== 정규식 함수 =====
// PHP 7.0 이상이면,
preg_match( string $pattern , string $subject [, array &$matches [, int $flags [, int $offset ]]] )
// PHP 7.0 이하에서 사용가능
ereg( $patternA, $searchStr, /*array*/$matchResult );
$searchStr 에서 $patternA 를 찾아서 $matchResult에 저장
| eregi() | 대소문자 구분 없이 |
| ereg_replace() | 찾아서 변경 |
| preg_split( a, b, c ) | b 에서 a 패턴에 맞게 문자열 분리. split() 함수는 삭제 예정 함수. |