웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > php

[PHP] 문자열에서 특정 문자를 다른 문자로 치환, 변환하는 방법, 정규표현식 사용

Last Modified : 2016-04-20 / Created : 2014-08-29
54,950
View Count

PHP 언어에서 문자를 다른 특정 문자로 변환할 경우 아래 함수를 사용합니다. 매우 자주 사용되는 함수 중 하나 입니다. 언제 문자 변환이 필요할까요? 정리해보면...

[ 1 ] 문자 치환이 필요한 경우는?


1. 데이타베이스와 연동하기 위해 특수문자 또는 줄바꿈 처리시
2. 게시판에서 특정 문자의 제거 또는 치환으로 특수문자와 줄바꿈 변경에 자주 사용
3. 사이트 주소, 이메일, 핸드폰 번호 등등을 일정한 규칙으로 바꾸어 서버에 전송시
4. 검색 기능을 구현할 때 인덱스 문자를 변환하기 위해 사용하거나 대소문자 변경시


[ 2 ] 문자 변환 방법 및 사용 함수



<?php
str_replace("찾을 문자", "변경할 문자", "해당하는 문자열");
preg_replace("/찾을 문자/", "변경할 문자", "해당하는 문자열");
?>


; 둘 다 같지만 preg_replace()를 사용하면 정규표현식을 사용할 수 있습니다. 참고로, preg_replace는 정규표현식 방법으로 문자열을 검색해주는 함수 preg_match()와 함께 자주사용됩니다. 사용방법은 예제를 참고하세요.


# str_replace를 사용한 예제 1번

$testval = "123 456 127";
str_replace("123", "456", $testval);
// 123이란 문자를 456으로 변경

456 456 127  //  출력 결과




# preg_replace를 사용한 예제 2번


$testval = "a1 b2 c3";
preg_replace("/[0-9]/", "", $testval);
// 정규표현식을 사용하여 숫자를 모두 삭제

a b c  //  예제 2번 출력 결과



# preg_replace를 사용한 예제 3번
$testval = "aA1 bB2 cC3";
preg_replace("/[a-z]/", "", $testval);
// 정규표현식을 사용하여 소문자 모두 삭제

A1 B2 C3  //  예제 3번 출력 결과



# preg_replace를 사용한 예제 4번
$testval = "aA1 bB2 cC3";
preg_replace("/[a-zA-Z]/", "", $testval);
// 정규표현식을 사용하여 대문자 소문자 모두 삭제

1 2 3  //  예제 4번 출력 결과



[ 3 ] 배열을 사용한 문자 변경방법


; 배열을 인덱스 문자로 사용하여 정규표현식 변환이 가능합니다. 아래를 살펴보세요.

<?php
$test = "빨주노초파남보";

$patternValue[0] = "/빨/";
$patternValue[1] = "/노/";

$replacements[0] = "검";
$replacements[1] = "흰";

preg_replace($patternValue, $replacementValue, $test);
?>

위 결과는 아래와 같습니다.

검주흰초파남보 // 다음과 같이 출력



! 참고로 배열을 사용하기 위해서는 찾을 배열과 변경할 배열의 개수가 동일, 즉 길이가 서로 같아야만 합니다. 그리고 위에 사용된 특수문자는 메타문자로 다음을 의미합니다.
  • ^ 시작
  • $ 끝
  • | 또는

이 외에도 많은 메타문자가 존재하며 메타문자로 사용하지 않을 경우 역슬래쉬()를 추가하여야 합니다~

Previous

[PHP] 변수의 존재 여부 확인, isset() empty()

Previous

[PHP] 배열 관련 기본함수 정리, 선언, 크기, 추가, 제거등등