php 입문 | 텍스트 및 날짜 조작 | 텍스트를 다루는 주요 함수
프로그램을 만들 때, 의외로 중요한 것이 “다양한 값을 조작하는 방법"이다. 이것이 알 수 없으면 이런 저런 고민이 많아 진다. 우선은 텍스트를 조작하는 주요 기능에서 소개해 보겠다.
텍스트의 길이를 얻는다.
$변수 = strlen(텍스트);
$변수 = mb_strlen(텍스트);
텍스트가 몇 문자인지 알아낸다. strlen은 일반적인 영어 텍스트(영숫자) 문자를 mb_strlen는 한국어 등 1바이트 문자가 아닌 것에 대해 문자를 확인하여 정수 값으로 반환한다.
$n = strlen('hello'); // $n는 5가 된다.
텍스트의 위치를 조회한다.
$변수 = strpos(대상 텍스트, 검색 문자, 시작 위치);
$변수 = mb_strpos(대상 텍스트, 검색 문자, 시작 위치, 인코딩);
어느 텍스트 안에 조회하려는 텍스트가 있는 위치를 알아내는 것이다. 이것도 1바이트 문자용 strpos와 그외에 다른 문자용의 mb_strpos의 2종류가 준비되어 있다.
첫번째 인수는 조회하려는 대상의 텍스트를, 두번째는 조회할 텍스트를 각각 지정한다. 이 2개는 필수이다. 세번째는 몇번째 문자부터 조회할지 숫자로 지정한다. 네번째는 텍스트 인코딩을 지정한다.
아무튼, 영숫자 조회(strpos)는 처음에 2개만 호출하면 보통은 될 것이다. 하지만, 한국어 등을 조회할 mb_strpos의 경우 4개 모두를 지정하는 것이 기본 생각해 두자. 특히, 4번째 인코딩을 제대로 지정하지 않으면 잘 찾아지지 않을 수도 있다.
반환값은 몇번째 문자인지 (최초는 0이 된다)을 나타내는 정수이다. 발견되지 않는 경우는 false가 반환된다.
$n = strpos("Hello","e",0,"UTF-8"); // $n는 1이 된다.
텍스트의 일부를 추출한다.
$변수 = substr(텍스트, 시작 위치, 길이);
$변수 = mb_substr(텍스트, 시작 위치, 길이, 인코딩);
텍스트 중에서 지정한 부분의 텍스트를 반환한다. 예를 들어 “Hello PHP World"라는 텍스트 중에서 “PHP"만 추출하려고 할 경우에 사용한다.
첫 번째 인수는 추출하려는 원래 텍스트를 지정하고 두번째, 세 번째 추출하려는 위치와 문자(길이)를 각각 지정한다. 위치는 가장 최초가 0부터 시작된다. 또한 한국어 등의 경우 mb_substr는 반드시 인코딩을 지정하도록 한다.
$s = substr("Hello",2,2); // $s는 "ll"가 된다.
텍스트를 치환한다.
$변수 = str_replace(검색 문자, 대체 문자, 텍스트);
텍스트 치환은 str_replace라는 편리한 함수가 준비되어 있다. 검색 문자와 치환하려는 문자, 그리고 대상이 되는 텍스트를 지정해주는 것만으로 대체된 텍스트가 반환된다. 이것은 한국어용의 함수라는 것은 준비되어 있지 않는다. 모든 이 하나에서 실행한다.
이 함수는 세번째의 텍스트에 포함된 검색 문자를 모두 치환 문자로 대체한 것을 돌려준다.
$s = str_replace("java","PHP","Hello java!"); // $s는 "Hello PHP!"가 된다