~~Title:PHP 문자열과 정규식~~ {{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() 함수는 삭제 예정 함수. |