본문 바로가기

[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'

 

반응형

댓글


Copyright ⓒ SmartWeb All rights reserved.