IT
PHP 문자열(string)
1. 문자열 기본 개념
PHP에서 문자열은 작은따옴표(’) 또는 큰따옴표(”)를 사용하여 생성할 수 있습니다.
$str1 = 'Hello';
$str2 = "World";
차이점:
-
작은따옴표(’): 변수와 특수문자를 해석하지 않음.
-
큰따옴표(”): 변수와 특수문자를 해석함.
$name = 'Mike';
echo 'Hello $name'; // Hello $name
echo "Hello $name"; // Hello Mike
2. 문자열 연결
PHP에서는 문자열을 점(.) 연산자로 연결합니다.
$first = "Hello";
$second = "World";
$combined = $first . " " . $second; // "Hello World"
3. 문자열 길이 확인
$str = "Hello World";
echo strlen($str); // 11
4. 문자열 자르기
$str = "Hello World";
echo substr($str, 0, 5); // "Hello"
echo substr($str, -5); // "World"
5. 문자열 검색
$str = "Hello World";
echo strpos($str, "World"); // 6
echo strpos($str, "PHP"); // false
주의: strpos()는 찾는 문자열이 없을 경우 false를 반환하므로, 반드시 === false로 비교해야 합니다.
6. 문자열 대체
$str = "I like PHP";
echo str_replace("PHP", "JavaScript", $str); // "I like JavaScript"
7. 대소문자 변환
$str = "Hello World";
echo strtoupper($str); // "HELLO WORLD"
echo strtolower($str); // "hello world"
echo ucfirst($str); // "Hello world"
echo ucwords($str); // "Hello World"
8. 문자열 트림(trim)
공백이나 특정 문자를 제거할 때 사용합니다.
$str = " Hello World ";
echo trim($str); // "Hello World"
echo ltrim($str); // "Hello World "
echo rtrim($str); // " Hello World"
9. 문자열 나누기와 합치기
나누기:
explode()
$str = "apple,banana,orange";
$fruits = explode(",", $str);
// $fruits = ["apple", "banana", "orange"]
합치기:
implode()
또는
join()
$fruits = ["apple", "banana", "orange"];
$str = implode(" | ", $fruits); // "apple | banana | orange"
10. 멀티바이트 문자열 (UTF-8 등)
한국어처럼 멀티바이트 문자는 일반 함수 대신 mb_ 함수 사용을 권장합니다.
$str = "안녕하세요";
echo mb_strlen($str, 'UTF-8'); // 5
echo mb_substr($str, 0, 2, 'UTF-8'); // 안녕
11. 문자열 포함 여부 확인 (PHP 8 이상)
$str = "Hello World";
if (str_contains($str, "World")) {
echo "포함됨";
}
12. 기타 유용한 함수
함수
설명
str_repeat()
문자열 반복
strrev()
문자열 뒤집기
nl2br()
개행 문자를 <br>로 변환
htmlspecialchars()
HTML 특수문자 변환 (보안 필수)
addslashes()
따옴표 등에 백슬래시 추가 (보안)
예제 종합
$name = "홍길동 ";
$trimmed = trim($name);
$greeting = "안녕하세요, " . $trimmed . "님!";
echo mb_strtoupper($greeting, 'UTF-8');
결론
PHP는 다양한 문자열 함수들을 제공하여 웹 개발 시 매우 강력한 문자열 처리 기능을 갖추고 있습니다. 멀티바이트 문자열을 다룰 때는 mb_* 함수들을 사용하는 것이 중요하며, 보안적으로는 입력값에 대해 적절한 이스케이프 처리가 필요합니다.
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.