Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 문자열의 모든 공백을 제거하는 방법 총정리

PHP에서 문자열에 포함된 공백을 제거해야 하는 경우는 매우 흔합니다. 상황에 따라 단순히 띄어쓰기(스페이스)만 제거할 수도 있고, 탭이나 줄바꿈 문자까지 포함한 모든 공백 문자를 한 번에 없애야 할 수도 있습니다. 이 글에서는 세 가지 대표적인 방법을 예제 코드와 함께 자세히 살펴보겠습니다.

1. strtr() 함수를 사용하는 방법

strtr() 함수는 문자열 내의 특정 문자를 다른 문자로 변환할 때 사용됩니다. 이 함수를 활용하면 공백을 빈 문자열로 치환하여 제거할 수 있습니다. 단, strtr()은 원본 문자열을 직접 수정하지 않으므로 반환값을 반드시 변수에 다시 할당해야 합니다.

<?php
    $str = "this is a test string";
    $str = strtr($str, [' ' => '']);
    echo $str;
?>

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

thisisateststring

2. str_replace() 함수로 공백만 제거하기

문자열에서 일반 공백(스페이스)만 깔끔하게 제거하려면 str_replace() 함수를 사용하는 것이 가장 간단하고 직관적인 방법입니다. 이 함수는 지정한 문자나 문자열을 찾아 다른 값으로 치환합니다.

<?php
    $str = "this is a test string";
    $str = str_replace(' ', '', $str);
    echo $str;
?>

문자열 내의 모든 공백이 빈 문자열로 대체되어 다음과 같은 결과가 출력됩니다.

thisisateststring

3. preg_replace()로 탭·줄바꿈까지 모든 공백 제거하기

탭(\t)이나 줄바꿈(\n)처럼 눈에 보이지 않는 공백 문자까지 모두 제거하려면 정규 표현식을 지원하는 preg_replace() 함수를 사용해야 합니다.

<?php
    $str = "this is a test string";
    $str = preg_replace('/\s/', '', $str);
    echo $str;
?>

여기서 /\s/ 패턴은 스페이스, 탭, 줄바꿈 등 모든 종류의 공백 문자와 일치합니다. preg_replace()는 문자열에서 해당 패턴과 일치하는 모든 부분을 찾아 지정한 값(이 경우 빈 문자열)으로 교체합니다.

실행 결과는 다음과 같습니다.

thisisateststring

마무리: 어떤 방법을 선택해야 할까?

세 가지 방법을 정리하면 다음과 같습니다.

  • str_replace(' ', '', $str) — 일반 공백만 제거할 때 가장 간단하고 빠른 방법입니다.
  • strtr($str, [' ' => '']) — 여러 문자를 한 번에 치환해야 할 때 유용합니다.
  • preg_replace('/\s+/', '', $str) — 탭, 줄바꿈 등 모든 공백 문자를 제거할 때 사용합니다.

참고로 preg_replace() 사용 시 /\s+/처럼 수량자 +를 함께 쓰면 연속된 공백을 하나의 패턴으로 처리할 수 있어 더욱 효율적입니다. 요구 사항에 맞는 적절한 함수를 선택하여 깔끔한 문자열을 만들어 보세요.