
내장 함수는 동적 웹 페이지를 만들 때 웹 개발자가 자주 해야 하는 작업을 개발자가 직접 작성하지 않아도 수행할 수 있도록 설계되었다.
다음의 함수는 텍스트(문자열 데이터)를 가지고 동작하도록 설계되었다. 이 함수는 문자열을 인수로 받아서 그 문자열을 업데이트하여 수정된 문자열을 반환한다.
대소문자 바꾸기
- strtolower($string) : 모든 문자가 소문자인 문자열을 반환한다.
- strtoupper($string) : 모든 문자가 대문자인 문자열을 반환한다.
- ucwords($string) : 모든 단어의 첫 글자가 대문자인 문자열을 반환한다.
문자와 단어 계수하기
- strlen($string) : 문자열의 문자 수를 반환한다. 공백과 구두점도 문자로 취급한다.
- str_word_count($string) : 문자열의 단어 수를 반환한다.
예시
<?php $text = 'Home sweet home'; ?> <?php include 'includes/header.php'; ?> <p> <b>Lowercase:</b> <?= strtolower($text) ?><br/> <b>Uppercase:</b> <?= strtoupper($text) ?><br/> <b>Uppercase first letter:</b> <?= ucwords($text) ?><br/> <b>Character count:</b> <?= strlen($text) ?><br/> <b>Word count:</b> <?= str_word_count($text) ?><br/> </p> <?php include 'includes/footer.php'; ?>

문자열에서 하나 이상의 문자를 찾는다. 만약에 일치하는 게 있다면 해당 문자의 위치를 반환한다. 만약에 일치하는 게 없다면 false를 반환한다.
문자열의 각 문자는 위치를 가지고 있다. 이것은 0부터 시작하는 숫자이다. 문자열에서 일련의 문자를 찾을 때, 찾는 문자열을 하위 문자열substring이라 부른다.
일부 함수는 대소문자를 구분case-sensitive한다. 따라서 문자열과 하위 문자열의 대문자와 소문자 조합이 동일한 경우에만 일치하는 것으로 판단한다.
- strpos($string, $substring[ , $offset] ) : 하위 문자열과 처음으로 일치하는 위치를 반환(대소문자 구분). offset을 사용하면 그 문자 위치 다음부터 찾는다.
- stripos($string, $substring[ , $offset] ) : 대소문자를 구분하지 않는 strpos() 버전
- strrpos($string, $substring[ , $offset] ) : 하위 문자열에 대해 마지막으로 일치하는 위치를 반환(대소문자 구분)
- strripos($string, $substring[ , $offset] ) : 대소문자를 구분하지 않는 strrpos() 버전
- strstr($string, $substring) : 하위 문자열이 처음으로 일치하는 위치부터 문자열의 끝까지의 텍스트를 반환(대소문자 구분)
- stristr($string, $substring) : 대소문자를 구분하지 않는 strstr() 버전
- substr($string, $offset[ , $characters] ) : $offset에 지정된 위치로부터 문자열 끝까지의 문자를 반환. 만약에 $characters 매개변수가 사용되면 $offset 다음으로 반환할 수 있는 문자 수를 지정한다.
- str_contains($string, $substring) : 문자열에서 하위 문자열이 있는지 확인하여 true/false를 반환(대소문자 구분)
- str_starts_with($string, $substring) : 문자열이 하위 문자열로 시작하는지 확인하여 true/false를 반환(대소문자 구분)
- str_ends_with($string, $substring) : 문자열이 하위 문자열로 끝나는지 확인하여 true/false를 반환(대소문자 구분)
지정된 문자(공백 문자 포함)를 제거하고, 문자를 교체하며(찾기 및 바꾸기 도구처럼), 지정된 횟수만큼 문자열을 반복할 수 있다.
trim 함수는 문자열에서 문자를 제거한다. 특정 문자가 문자열의 시작과 끝에 있는지 확인하고 만약에 있다면 삭제한다. 제거할 문자를 지정하지 않으면, trim 함수는 문쟈열의 시작과 끝에 있는 공백, 탭, 캐리지 리턴, 줄 바꿈(소프트 리턴)을 포함한 모든 공백 문자를 제거한다.
replace 함수는 문자열에서 문자를 찾는다. 만약에 일치하는 것이 발견되면 해당 문자를 새로운 문자로 바꾼다.
repeat 함수는 고정된 횟수만큼 문자열을 반복한다.
- ltrim($string[ , $delete] ) : 문자열의 왼쪽에 있는 공백을 제거한다. $delete에 문자가 지정되고 문자열의 시작 부분에 그 문자가 있다면, 해당 문자를 제거한다. 이것은 대소문자를 구분한다.
- rtrim($string[ , $delete] ) : 문자열의 오른쪽에 있는 공백을 제거한다.
- trim($string[ , $delete] ) : 문자열의 왼쪽과 오른쪽에 있는 공백을 제거한다.
- str_replace($old, $new, $string) : 하위 문자열 $old를 $new에 있는 문자열로 바꾼다(대소문자 구분).
- str_repeat($string, $new, $string) : 하위 문자열 $old를 $new에 있는 문자열로 바꾼다(대소문자를 구분하지 않음).
- str_repeat($string, $repeats) : 지정된 횟수만큼 문자열을 반복한다.
멀티 바이트 문자열 함수는 UTF-8의 모든 문자를 지원한다. 위의 함수들과 같은 이름이지만 그 앞에 mb_라는 문자가 붙는다.
일부 분자열 함수(ex. trim() 그리고 str_replace())는 멀티바이트에 해당하는 다른 함수가 없다. php.ini 또는 .htaccess 파일의 디폴트 문자 인코딩이 UTF-8로 설정되어 있다면, 이들 함수는 UTF-8로 동작한다.
- mb_strtoupper($string) : 모든 문자가 대문자인 문자열을 반환한다.
- mb_strtolower($string) : 모든 문자가 소문자인 문자열을 반환한다.
- mb_strlen($string) : 문자열의 문자 수를 반환한다.
- mb_strpos($string, $substring[ , $offset] ) : 하위 문자열이 발견된 첫 번째 위치를 반환한다(대소문자 구분). $offset이 지정되면, 그 위치 다음부터 찾는다.
- mb_stripos($string, $substring[ , $offset] ) : 대소문자를 구분하지 않는 mb_strpos() 버전이다.
- mb_strrpos($string, $substring[ , $offset] ) : 하위 문자열이 마지막으로 일치하는 위치를 반환한다(대소문자 구분).
- mb_strripos($string, $substring[ , $offset] ) : 대소문자를 구분하지 않는 mb_strrpos() 버전이다.
- mb_strstr($string, $substring) : 하위 문자열이 처음 발견되는 부분(하위 문자열 포함)부터 문자열 끝까지 텍스트를 반환한다(대소문자 구분).
- mb_stristr($string, $substring) : 대소문자를 구분하지 않는 mb_strstr() 버전이다.
- mb_substr($string, $start[ , $characters] ) : $start에 지정된 위치부터 문자열의 끝까지의 문자를 반환한다. 만약에 $characters가 지정되면 $start 다음으로 지정된 수만큼의 문자를 반환한다.
출처 - 존 두켓, <백엔드 프로그래밍을 위한 PHP & MySQL>, Jpub, 2022
훌륭한 글 감사드립니다.