5.01. 문자열이 특정 문자열로 시작하는지 검사하기

php 에는 문자열이 특정 문자열로 시작하는지 확인하는 starts_with 함수가 없다. 따라서 직접 만들어 써야 한다.

function string_starts_with($input, $value) {    
    return $value === "" ||  mb_strrpos($input, $value, -mb_strlen($input)) !== false;
}

var_dump(string_starts_with("안녕하세요.", "안녕"));
var_dump(string_starts_with("안녕하세요.", "하이"));

위 코드를 string_starts_with.php 파일에 저장하고 브라우저에서 결과를 확인한다.

bool(true) bool(false) 

string_starts_with 함수의 첫번째 파라미터는 전체 문자열, 두번째 문자열은 시작하는 문자열이다. 아래의 예제는 "안녕하세요." 문자열이 "안녕" 으로 시작하는지 검사한다.

string_starts_with("안녕하세요.", "안녕")

php에서 앞에 mb_ 가 붙는 함수는 멀티바이트(Multi Byte) 를 다루는 함수들이다.
원래 php는 영어를 기준으로 설계되었기 때문에 한글같은 멀티바이트 글자를 잘 처리하지 못한다. 따라서 멀티바이트 글자를 처리하기 위한 함수들이 일부 존재한다.


mb_strrpos 함수는 input 문자열 안에서 value 문자열의 위치를 오른쪽에서부터 찾는 strrpos의 멀티바이트 버전이다.


mb_strlen 함수는 문자열의 길이를 세는 strlen의 멀티 바이트 버전이다.