내장 함수(1)

minah moon·2023년 8월 9일

PHP

목록 보기
18/58
post-thumbnail

내장 함수는 동적 웹 페이지를 만들 때 웹 개발자가 자주 해야 하는 작업을 개발자가 직접 작성하지 않아도 수행할 수 있도록 설계되었다.

대문자 & 소문자 길이 확인하기

다음의 함수는 텍스트(문자열 데이터)를 가지고 동작하도록 설계되었다. 이 함수는 문자열을 인수로 받아서 그 문자열을 업데이트하여 수정된 문자열을 반환한다.

대소문자 바꾸기

  • 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

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

훌륭한 글 감사드립니다.

답글 달기