>백엔드 개발 >PHP 튜토리얼 >PHP에서 문자열의 줄 바꿈을 단일 공백으로 어떻게 바꿀 수 있습니까?

PHP에서 문자열의 줄 바꿈을 단일 공백으로 어떻게 바꿀 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-08 07:43:12273검색

How Can I Replace Newlines in a String with Single Spaces in PHP?

줄바꿈을 제거하고 단일 공백으로 바꾸기

문자열에서 모든 줄바꿈을 제거하고 단일 빈 공백으로 바꾸려면 다음을 고려하세요. 다음 접근 방식을 따릅니다.

이해하기 문제

개행 문자가 포함된 문자열을 제거하고 그 자리에 공백 하나를 삽입하려고 합니다. 예를 들어, 문자열:

$string = "
put returns between paragraphs

for linebreak add 2 spaces at end

";

은 다음과 같아야 합니다:

$string = "put returns between paragraphs for linebreak add 2 spaces at end ";

Solution

이를 수행하려면 PHP의 preg_replace( ) 정규식과 함께 함수를 사용하여 개행 문자를 일치시키고 교체합니다. 다음 정규 표현식은 줄 바꿈(n), 캐리지 리턴(r) 및 이중 줄 바꿈("rn")을 포함한 모든 줄 바꿈을 식별합니다.

/\r\n|\r|\n/

그러나 이 접근 방식은 다음과 같은 경우가 있을 수 있다는 점에 유의하는 것이 중요합니다. 여러 연속 개행 문자를 여러 공백으로 바꿉니다. 이를 방지하려면 여러 공백과 일치하고 단일 공백으로 바꾸는 보다 효율적인 정규식을 사용하세요.

$string = trim(preg_replace('/\s\s+/', ' ', $string));

이 수정된 정규식을 사용하면 단일 줄바꿈과 여러 줄 바꿈 및 여러 공백 모두에 사용할 수 있습니다. 하나의 공백으로 대체됩니다.

추가 고려 사항

제공되는 솔루션이 효과적으로 줄 바꿈을 제거하고 그 자리에 단일 공백을 삽입하는 경우 여러 개의 연속 단어가 포함될 때 상황이 더 복잡해질 수 있다는 점을 언급할 가치가 있습니다. 이러한 시나리오의 경우 이중 공백이 발생하지 않는 대체 접근 방식은 다음과 같습니다.

$string = trim(preg_replace('/\s+/', ' ', $string));

위 내용은 PHP에서 문자열의 줄 바꿈을 단일 공백으로 어떻게 바꿀 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.