코딩 스쿨 PHP

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

PHP Strings

PHP 문자열: 기본 개념과 사용법

PHP 문자열이란?

PHP에서 문자열(String)은 텍스트 데이터를 저장하고 처리하는 데 사용되는 데이터 타입입니다. 문자열은 단어, 문장, HTML 코드 등 다양한 형태로 웹 애플리케이션에서 활용됩니다. PHP는 문자열을 조작할 수 있는 다양한 함수와 연산자를 제공하여, 개발자가 효과적으로 데이터를 처리할 수 있도록 지원합니다. 이 글에서는 PHP 문자열의 기본 개념부터 고급 기능까지 다양한 측면을 예제와 함께 살펴보겠습니다.


1. 문자열 선언 및 사용법

PHP에서 문자열을 선언하는 방법에는 주로 작은 따옴표(' ')와 큰 따옴표(" ")를 사용하는 두 가지가 있습니다. 이 두 가지 방법은 문자열을 처리하는 방식에 약간의 차이가 있습니다.

1.1 작은 따옴표(' ')를 사용한 문자열

작은 따옴표로 감싼 문자열은 내부의 변수를 해석하지 않고, 그대로 출력합니다. 또한, 특정 이스케이프 시퀀스만 인식합니다.

<?php
  $name = '홍길동';
  echo '안녕하세요, $name 님!';  // 출력: 안녕하세요, $name 님!
?>

1.2 큰 따옴표(" ")를 사용한 문자열

큰 따옴표로 감싼 문자열은 내부의 변수를 해석하여 출력합니다. 또한, 다양한 이스케이프 시퀀스를 지원합니다.

<?php
  $name = "홍길동";
  echo "안녕하세요, $name 님!";  // 출력: 안녕하세요, 홍길동 님!
?>

1.3 문자열 결합 (Concatenation)

PHP에서는 점(.) 연산자를 사용하여 문자열을 결합할 수 있습니다.

<?php
  $greeting = "안녕하세요";
  $name = "홍길동";
  echo $greeting . ", " . $name . " 님!";  // 출력: 안녕하세요, 홍길동 님!
?>


2. 문자열 길이 확인

문자열의 길이를 확인하려면 strlen() 함수를 사용합니다. 이 함수는 문자열의 바이트 수를 반환합니다.

<?php
  $str = "안녕하세요";
  echo strlen($str);  // 출력: 15 (UTF-8 인코딩 기준)
?>

참고: UTF-8 인코딩에서는 한글 한 글자가 3바이트로 계산됩니다. 따라서 문자열의 실제 문자 수를 알고 싶다면 mb_strlen() 함수를 사용하는 것이 좋습니다.

<?php
  $str = "안녕하세요";
  echo mb_strlen($str, 'UTF-8');  // 출력: 5
?>


3. 문자열 검색

문자열 내에서 특정 문자열을 검색하려면 strpos() 함수를 사용합니다. 이 함수는 검색 문자열의 첫 번째 위치를 반환하며, 찾지 못하면 FALSE를 반환합니다.

<?php
  $str = "PHP 문자열 검색 예제입니다.";
  $pos = strpos($str, "문자열");

  if ($pos !== false) {
    echo "'문자열'은 $pos 위치에 있습니다.";  // 출력: '문자열'은 4 위치에 있습니다.
  } else {
    echo "'문자열'을 찾을 수 없습니다.";
  }
?>


4. 문자열 자르기

문자열의 일부분을 추출하려면 substr() 함수를 사용합니다.

<?php
  $str = "안녕하세요, PHP!";
  $substr = substr($str, 5, 3);
  echo $substr;  // 출력: PHP
?>

매개변수 설명:

  • 첫 번째 매개변수: 원본 문자열
  • 두 번째 매개변수: 시작 위치 (0부터 시작)
  • 세 번째 매개변수: 추출할 길이

5. 문자열 대소문자 변환

문자열의 대소문자를 변환하려면 strtoupper()strtolower() 함수를 사용합니다.

<?php
  $str = "Hello, World!";
  echo strtoupper($str);  // 출력: HELLO, WORLD!
  echo strtolower($str);  // 출력: hello, world!
?>


6. 문자열 대체

문자열 내의 특정 문자열을 다른 문자열로 대체하려면 str_replace() 함수를 사용합니다.

<?php
  $str = "PHP는 강력한 서버 측 스크립팅 언어입니다.";
  $newStr = str_replace("PHP", "JavaScript", $str);
  echo $newStr;  // 출력: JavaScript는 강력한 서버 측 스크립팅 언어입니다.
?>


7. 문자열 분할

문자열을 특정 구분자로 분할하려면 explode() 함수를 사용합니다. 반대로 배열을 문자열로 합치려면 implode() 함수를 사용합니다.

<?php
  $str = "사과,바나나,체리";
  $fruits = explode(",", $str);

  foreach ($fruits as $fruit) {
    echo $fruit . "<br>";
  }
  // 출력:
  // 사과
  // 바나나
  // 체리

  // 배열을 문자열로 합치기
  $newStr = implode(" & ", $fruits);
  echo $newStr;  // 출력: 사과 & 바나나 & 체리
?>


8. 문자열 비교

문자열을 비교하려면 strcmp() 함수를 사용합니다. 이 함수는 두 문자열을 비교하여 같으면 0, 첫 번째 문자열이 더 크면 양수를, 작으면 음수를 반환합니다.

<?php
  $str1 = "apple";
  $str2 = "banana";

  $result = strcmp($str1, $str2);

  if ($result < 0) {
    echo "$str1은(는) $str2보다 작습니다.";  // 출력: apple은(는) banana보다 작습니다.
  } elseif ($result > 0) {
    echo "$str1은(는) $str2보다 큽니다.";
  } else {
    echo "$str1과(와) $str2은(는) 같습니다.";
  }
?>


9. 이스케이프 시퀀스 (Escape Sequences)

이스케이프 시퀀스는 문자열 내에서 특수 문자를 표현할 때 사용됩니다. 큰 따옴표로 감싼 문자열에서 주로 사용됩니다.

이스케이프 시퀀스 의미
\\\\n 새 줄 (라인 피드)
\\\\t
\\\\\\\\ 백슬래시
\\\\" 큰 따옴표
\\\\$ 달러 기호
<?php
  echo "첫 번째 줄\\\\n두 번째 줄";
  // 출력:
  // 첫 번째 줄
  // 두 번째 줄

  echo "탭 사용 예제:\\\\tPHP";
  // 출력: 탭 사용 예제:	PHP

  echo "이것은 백슬래시입니다: \\\\\\\\";
  // 출력: 이것은 백슬래시입니다: \\\\
?>


10. HEREDOC와 NOWDOC

PHP에서는 큰 따옴표와 유사한 방식으로 문자열을 작성할 수 있는 HEREDOC와 NOWDOC 문법을 제공합니다. 이들은 복잡한 문자열을 보다 간편하게 작성할 수 있게 해줍니다.

10.1 HEREDOC

변수를 해석하며, 복수 줄의 문자열을 작성할 때 유용합니다.

<?php
  $name = "홍길동";
  $str = <<<EOD
  안녕하세요, $name 님!
  PHP의 HEREDOC 문법을 사용한 예제입니다.
  EOD;

  echo $str;
  // 출력:
  // 안녕하세요, 홍길동 님!
  // PHP의 HEREDOC 문법을 사용한 예제입니다.
?>

10.2 NOWDOC

변수를 해석하지 않고, 그대로 출력합니다. 작은 따옴표와 유사한 동작을 합니다.

<?php
  $name = "홍길동";
  $str = <<<'EOD'
  안녕하세요, $name 님!
  PHP의 NOWDOC 문법을 사용한 예제입니다.
  EOD;

  echo $str;
  // 출력:
  // 안녕하세요, $name 님!
  // PHP의 NOWDOC 문법을 사용한 예제입니다.
?>


11. 멀티바이트 문자열 처리

한글과 같은 멀티바이트 문자를 제대로 처리하려면 mb_* 함수들을 사용하는 것이 중요합니다. 기본 strlen() 함수는 바이트 수를 반환하므로, 실제 문자 수를 알고 싶을 때는 mb_strlen() 함수를 사용해야 합니다.

<?php
  $str = "안녕하세요";
  echo strlen($str);      // 출력: 15 (UTF-8 기준)
  echo mb_strlen($str, 'UTF-8');  // 출력: 5
?>


12. 문자열 함수 요약

PHP는 문자열을 다루기 위한 다양한 함수를 제공합니다. 주요 함수들을 정리하면 다음과 같습니다.

함수 설명
strlen() 문자열의 바이트 길이를 반환
mb_strlen() 문자열의 문자 수를 반환
strpos() 문자열 내에서 특정 문자열의 위치를 찾음
substr() 문자열의 일부분을 추출
strtoupper() 문자열을 대문자로 변환
strtolower() 문자열을 소문자로 변환
str_replace() 문자열 내에서 특정 문자열을 대체
explode() 문자열을 배열로 분할
implode() 배열을 문자열로 결합
strcmp() 두 문자열을 비교
var_dump() 변수의 타입과 값을 출력

13. 요약

PHP에서 문자열은 웹 개발의 핵심 요소 중 하나로, 다양한 방법으로 선언하고 조작할 수 있습니다. 작은 따옴표와 큰 따옴표를 적절히 사용하고, 문자열 결합, 검색, 자르기, 대소문자 변환 등 다양한 함수를 활용하면 효율적으로 데이터를 처리할 수 있습니다. 또한, HEREDOC와 NOWDOC 문법을 통해 복잡한 문자열을 간편하게 작성할 수 있으며, 멀티바이트 문자열을 처리할 때는 mb_* 함수를 사용하는 것이 중요합니다. PHP의 강력한 문자열 처리 기능을 잘 활용하여 웹 애플리케이션의 다양한 요구를 효과적으로 충족시킬 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com