💻 자주 쓰는 PHP 함수

[PHP 함수] strtolower() 함수 - 문자열 소문자 변환

rhandy 2025. 3. 28. 11:57
728x90

PHP에서 문자열을 처리할 때, 대문자를 소문자로 변환해야 하는 경우가 많습니다.
예를 들어, 사용자 입력값을 정규화(검색 및 비교), 이메일 주소 소문자 변환, URL 슬러그 처리 등에 사용됩니다.

이러한 기능을 수행하는 대표적인 함수가 바로 strtolower() 입니다.

이 글에서는 PHP strtolower() 함수의 사용법, 다양한 활용 예제, strtoupper() 및 mb_strtolower()와의 차이점, 유용한 팁과 주의사항을 체계적으로 정리하겠습니다. 


1. strtolower() 함수란?

기본 문법

string strtolower(string $string)

매개변수 설명

매개변수 설명

$string 소문자로 변환할 문자열

반환값

  • 입력된 문자열을 모두 소문자로 변환하여 반환

2. strtolower() 기본 예제

🔹 문자열을 소문자로 변환

<?php
$text = "Hello PHP!";
echo strtolower($text);
?>

🔹 실행 결과

hello php!

모든 알파벳이 소문자로 변환됨.


🔹 대문자만 포함된 문자열 변환

<?php
$text = "WELCOME TO PHP!";
echo strtolower($text);
?>

🔹 실행 결과

welcome to php!

모든 문자가 소문자로 변환됨.


🔹 혼합된 문자열 변환

<?php
$text = "Php Is AwEsOmE!";
echo strtolower($text);
?>

🔹 실행 결과

php is awesome!

모든 대문자가 소문자로 변환됨.


3. strtolower()의 실용적인 활용 예제

🔹 1) 사용자 입력값 정규화 (검색 비교)

<?php
$searchInput = "Apple";
$data = ["apple", "banana", "cherry"];

if (in_array(strtolower($searchInput), array_map("strtolower", $data))) {
    echo "✅ 검색어와 일치하는 항목이 있습니다.";
} else {
    echo "❌ 검색 결과가 없습니다.";
}
?>

대소문자 구분 없이 검색 가능.


🔹 2) 이메일 주소 소문자 변환

<?php
$email = "UserName@Example.com";
$normalizedEmail = strtolower($email);
echo $normalizedEmail;
?>

🔹 실행 결과

username@example.com

이메일 비교 시 대소문자를 구분하지 않도록 변환 가능.


🔹 3) URL 슬러그 생성

<?php
$title = "Hello World! PHP is Great.";
$slug = strtolower(str_replace(" ", "-", $title));
echo $slug;
?>

🔹 실행 결과

hello-world!-php-is-great.

URL 친화적인 슬러그(slug) 생성 가능.


🔹 4) 배열 내 모든 요소를 소문자로 변환

<?php
$words = ["PHP", "JAVASCRIPT", "HTML"];
$lowercaseWords = array_map("strtolower", $words);
print_r($lowercaseWords);
?>

🔹 실행 결과

Array
(
    [0] => php
    [1] => javascript
    [2] => html
)

배열 내 모든 요소를 소문자로 변환 가능.


4. strtolower() vs strtoupper() vs mb_strtolower() 차이점

함수 설명

strtolower() 영문 대문자를 소문자로 변환
strtoupper() 소문자를 대문자로 변환
mb_strtolower() 멀티바이트(UTF-8) 문자열까지 변환 가능 (한글, 일본어 등)

예제: strtolower() vs strtoupper()

<?php
$text = "Hello PHP!";
echo strtolower($text); // hello php!
echo strtoupper($text); // HELLO PHP!
?>

strtolower()는 소문자로 변환, strtoupper()는 대문자로 변환.


한글, 일본어, 중국어 등 멀티바이트 문자열 변환 (mb_strtolower())

<?php
$text = "안녕하세요 PHP!";
echo mb_strtolower($text, "UTF-8"); // 정상 동작
?>

strtolower()는 영어 알파벳만 변환 가능.
한글 등 멀티바이트 문자는 mb_strtolower() 사용해야 정상 변환.


5. strtolower() 사용 시 주의할 점

한글, 일본어, 중국어 등 다국어 변환 시 mb_strtolower() 사용

<?php
$text = "안녕하세요";
echo strtolower($text); // 변환되지 않음
echo mb_strtolower($text, "UTF-8"); // 정상 변환
?>

strtolower()는 영어 알파벳 이외의 문자 변환 불가.

배열 내 모든 문자열 변환 시 array_map() 사용

<?php
$words = ["HELLO", "WORLD"];
$lowercaseWords = array_map("strtolower", $words);
print_r($lowercaseWords);
?>

배열 요소 하나씩 변환하려면 array_map() 활용.

HTML 태그 속성 값 변환 시 주의

<?php
$html = '<A HREF="PAGE.HTML">LINK</A>';
echo strtolower($html); // '<a href="page.html">link</a>'가 아님!
?>

➡ strtolower()는 HTML 태그를 변환하지 않음.

MySQL LOWER() 함수와 유사

SELECT LOWER(name) FROM users;

➡ PHP의 strtolower()는 MySQL의 LOWER() 함수와 동일한 기능.


6. strtolower() 활용 팁

사용자 입력을 통일하여 비교

<?php
$input = "Hello";
$storedValue = "hello";

if (strtolower($input) === strtolower($storedValue)) {
    echo "같은 문자열입니다.";
}
?>

대소문자 구분 없이 비교 가능.

파일 확장자 비교

<?php
$filename = "document.PDF";

if (strtolower(pathinfo($filename, PATHINFO_EXTENSION)) === "pdf") {
    echo "PDF 파일입니다.";
}
?>

파일 확장자를 비교할 때 대소문자 차이를 무시 가능.

배열에서 특정 값 찾기

<?php
$colors = ["Red", "Blue", "Green"];
$search = "blue";

if (in_array(strtolower($search), array_map("strtolower", $colors))) {
    echo "컬러가 존재합니다.";
}
?>

대소문자 구분 없이 배열 내 값 검색 가능.

사용자 이름 정리

<?php
$username = "UserName";
$normalizedUsername = strtolower($username);
?>

사용자 이름을 정규화하여 저장 가능.


7. 결론

PHP의 strtolower() 함수는 문자열을 소문자로 변환하는 필수적인 함수입니다.
이를 활용하면 사용자 입력 정규화, 파일 확장자 비교, 이메일 정리, 검색어 통일, URL 슬러그 생성 등 다양한 작업을 수행할 수 있습니다.

📌 핵심 요약
✔️ strtolower()는 문자열의 모든 알파벳을 소문자로 변환
✔️ 배열 내 모든 값 변환은 array_map("strtolower", $array) 사용
✔️ 한글 등 다국어 문자열은 mb_strtolower() 사용
✔️ 검색, 비교, 파일 처리 등 다양한 작업에서 활용 가능

이제 strtolower()를 활용하여 더욱 효율적인 PHP 개발을 해보세요!

728x90