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) 방식이 더 직관적이고 가독성이 좋습니다. 상황에 맞게 적절한 방법을 선택해 사용하시기 바랍니다.