💻 자주 쓰는 PHP 함수

[PHP 함수] trim() 함수로 공백 제거하기

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

PHP에서 문자열을 다룰 때, 앞뒤의 불필요한 공백이나 특정 문자를 제거해야 하는 경우가 많습니다.
예를 들어, 사용자 입력값을 정리하거나, 데이터베이스에서 가져온 값을 정리할 때 유용합니다.
이러한 기능을 수행하는 대표적인 함수가 바로 trim() 입니다.
이 글에서는 PHP trim() 함수의 사용법, 다양한 활용 예제, ltrim() 및 rtrim()과의 차이점, 유용한 팁과 주의사항을 체계적으로 정리하겠습니다. 


1. trim() 함수란?

기본 문법

string trim(string $string, string $characters = " \n\r\t\v\0")

매개변수 설명

매개변수 설명

$string 공백을 제거할 문자열
$characters (선택) 제거할 특정 문자 (기본값: 공백, 개행 문자, 탭 등)

반환값

  • 문자열의 앞뒤에서 특정 문자를 제거한 결과를 반환

2. trim() 기본 예제

🔹 앞뒤 공백 제거

<?php
$text = "  Hello, PHP!  ";
$trimmed = trim($text);
echo "'$trimmed'";
?>

🔹 실행 결과

'Hello, PHP!'

앞뒤 공백이 제거됨.


🔹 기본적으로 제거되는 공백 문자

문자 설명

" " 스페이스 (공백)
"\n" 줄 바꿈 (LF)
"\r" 캐리지 리턴 (CR)
"\t"
"\v" 수직 탭
"\0" 널 바이트

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

🔹 1) 사용자 입력값 정리

<?php
$userInput = "   Alice   ";
$cleanInput = trim($userInput);
echo "'$cleanInput'"; // 'Alice'
?>

사용자가 입력한 값의 앞뒤 공백을 자동으로 제거.


🔹 2) 데이터베이스 입력 정리

<?php
$name = "  John Doe  ";
$cleanName = trim($name);
$insertQuery = "INSERT INTO users (name) VALUES ('$cleanName')";
?>

데이터베이스 저장 시 불필요한 공백 제거.


🔹 3) 특정 문자 제거 ($characters 매개변수 활용)

<?php
$text = "###Hello, PHP###";
$cleanText = trim($text, "#");
echo $cleanText;
?>

🔹 실행 결과

Hello, PHP

➡ 앞뒤의 # 문자가 제거됨.


🔹 4) URL에서 불필요한 / 제거

<?php
$url = "/path/to/page/";
$cleanUrl = trim($url, "/");
echo $cleanUrl;
?>

🔹 실행 결과

path/to/page

앞뒤의 /만 제거되고 중간의 /는 유지됨.


🔹 5) CSV 데이터 정리

<?php
$csv = " Apple , Banana , Cherry ";
$fruits = array_map("trim", explode(",", $csv));
print_r($fruits);
?>

🔹 실행 결과

Array
(
    [0] => Apple
    [1] => Banana
    [2] => Cherry
)

➡ array_map("trim", ...)을 사용하면 배열 내 모든 요소의 공백을 제거 가능.


4. trim() vs ltrim() vs rtrim() 차이점

함수 설명

trim() 문자열의 앞뒤 공백 제거
ltrim() 문자열의 앞쪽(왼쪽) 공백 제거
rtrim() 문자열의 뒤쪽(오른쪽) 공백 제거

예제: trim() vs ltrim() vs rtrim()

<?php
$text = "  Hello, PHP!  ";
echo "'" . trim($text) . "'\n";  // 'Hello, PHP!'
echo "'" . ltrim($text) . "'\n"; // 'Hello, PHP!  '
echo "'" . rtrim($text) . "'\n"; // '  Hello, PHP!'
?>

왼쪽 공백만 제거하려면 ltrim(), 오른쪽 공백만 제거하려면 rtrim() 사용.


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

중간 공백은 제거되지 않음

<?php
$text = "  Hello   PHP  ";
$trimmed = trim($text);
echo "'$trimmed'";
?>

🔹 실행 결과

'Hello   PHP'

중간의 공백은 그대로 유지됨.
➡ 중간 공백도 제거하려면 str_replace(" ", "", $text) 사용.
멀티바이트 문자열(한글 등) 처리 시 mb_trim() 필요

<?php
$text = " 안녕하세요 "; // 일본어, 중국어에서 사용되는 전각 공백 포함
$cleanText = trim($text);
echo "'$cleanText'"; // 전각 공백은 제거되지 않음
?>

➡ trim()은 전각 공백(全角スペース)을 제거하지 않음.
➡ 한글 등 멀티바이트 문자는 preg_replace() 활용.

<?php
function mb_trim($str) {
    return preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $str);
}

$text = " 안녕하세요 ";
echo "'" . mb_trim($text) . "'";
?>

배열 내 모든 값의 공백 제거 (array_map())

<?php
$values = ["  Apple  ", " Banana ", " Cherry  "];
$cleanValues = array_map("trim", $values);
print_r($cleanValues);
?>

➡ 배열 내 모든 요소의 앞뒤 공백을 제거 가능.


6. trim() 활용 팁

HTML 입력값 자동 정리

<?php
$userInput = trim($_POST["username"] ?? "");
echo "입력값: '$userInput'";
?>

폼 입력을 받을 때 자동으로 공백을 제거.
로그 데이터 정리

<?php
$log = " INFO: 시스템 정상 작동  ";
$cleanLog = trim($log, " ");
echo $cleanLog;
?>

로그 파일 분석 시 불필요한 공백을 정리 가능.
파일 확장자 추출

<?php
$filename = "document.pdf ";
$extension = trim(pathinfo($filename, PATHINFO_EXTENSION));
echo $extension; // "pdf"
?>

➡ 파일 확장자를 추출할 때 공백이 포함되지 않도록 정리.


7. 결론

PHP의 trim() 함수는 문자열의 앞뒤 공백을 제거하는 필수적인 함수입니다.
이를 활용하면 사용자 입력 정리, 파일명 정리, CSV 데이터 정리, URL 처리 등 다양한 작업을 효율적으로 수행할 수 있습니다.
📌 핵심 요약
✔️ trim()은 문자열의 앞뒤 공백을 제거
✔️ 중간 공백은 제거되지 않음
✔️ 특정 문자 제거 시 trim($text, "abc") 사용 가능
✔️ 멀티바이트 문자열(한글 등)은 mb_trim() 필요
✔️ 배열 내 모든 요소 정리는 array_map("trim", $array) 사용
이제 trim()을 활용하여 더욱 깨끗한 문자열 데이터를 다뤄보세요!

728x90