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()을 활용하여 더욱 깨끗한 문자열 데이터를 다뤄보세요!
'💻 자주 쓰는 PHP 함수' 카테고리의 다른 글
[PHP 함수] json_decode() 함수로 Json을 배열로 변환 (6) | 2025.03.27 |
---|---|
[PHP 함수] preg_match() 함수로 패턴 검사하기 (10) | 2025.03.26 |
[PHP 함수] is_file() 함수로 파일 확인하기 (10) | 2025.03.25 |
[PHP 함수] array_values() 함수로 배열 다루기 (14) | 2025.03.25 |
[PHP 함수] file_get_contents()로 웹 페이지 가져오기 (21) | 2025.03.24 |