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

PHP 문자열에서 줄바꿈(개행) 제거하는 방법

PHP에서 문자열에 포함된 줄바꿈(개행) 문자를 제거하려면 preg_replace() 함수나 str_replace() 함수를 활용할 수 있습니다. 아래 예제를 통해 두 가지 방법을 살펴보겠습니다.

방법 1: preg_replace()로 정규 표현식 사용하기

preg_replace() 함수와 정규 표현식 ~[\r\n]+~를 사용하면 캐리지 리턴(\r)과 라인 피드(\n)를 모두 찾아 한 번에 제거할 수 있습니다.

<?php
   $str = "Demo
   text for
   reference";
   echo nl2br($str);
   $str = preg_replace('~[\r\n]+~','', $str);
   echo "\n".nl2br($str);
?>

출력 결과

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

Demo<br />
   <br />
text for <br />
<br />
reference
Demo text for reference

먼저 nl2br() 함수가 원본 문자열의 각 줄바꿈 앞에 <br /> 태그를 삽입해 출력하고, 이후 preg_replace()가 모든 개행 문자를 제거한 결과가 한 줄로 이어진 문자열로 출력되는 것을 확인할 수 있습니다.

방법 2: str_replace()로 개행 문자 치환하기

정규 표현식 없이 더 간단하게 처리하려면 str_replace() 함수를 사용하면 됩니다. 배열 형태로 \n과 \r을 전달하면 두 문자를 모두 빈 문자열('')로 치환합니다.

<?php
   $str = "Demo
   text";
   echo nl2br($str);
   $str = str_replace(array("\n", "\r"), '', $str);
   echo "\n".nl2br($str);
?>

출력 결과

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

Demo<br />
   <br />
text
Demo text

정리

문자열에서 줄바꿈을 제거할 때는 정규 표현식 기반의 preg_replace('~[\r\n]+~', '', $str) 방식이 연속된 개행 문자까지 한 번에 처리할 수 있어 더 유연합니다. 반면 단순 치환이 목적이라면 str_replace(array("\n", "\r"), '', $str) 방식이 더 직관적이고 가독성이 좋습니다. 상황에 맞게 적절한 방법을 선택해 사용하시기 바랍니다.