PHP로 single serving site을 개발 중입니다. 단순히 방문객이 게시 한 메시지 (이상적으로 웹 사이트의 주제를 둘러싸고있는 메시지) 만 표시합니다. 누구나 한 시간에 최대 3 개의 메시지를 게시 할 수 있습니다.일반 표현식으로 중복 줄 바꿈 제거하기
웹 사이트는 하나의 페이지 일 뿐이므로 각 메시지의 세로 길이를 제어하고 싶습니다. 그러나 원본 메시지의 줄 바꿈을 부분적으로 유지하려고합니다. 두 줄 바꿈을 허용하는 것이 타협이지만 두 줄 이상인 경우 한 줄에 총 두 줄 바꿈으로 바꿉니다. 스택 오버플로가이를 구현합니다. 예를 들어
". 고슴도치 \ 레즈의 \ n \ n \ n \의 nporcupiney"
이
로 변경 될 것 "고슴도치 < BR /> < BR /> < BR /> porcupiney입니다."
줄 바꿈을 검사하는 까다로운 측면 중 하나는 수집되어 \ r \ n, \ r 또는 \ n으로 저장 될 가능성이 있습니다. 모든 줄 바꿈을 nl2br()을 사용하여 < br /> s로 변환하는 방법에 대해 생각했지만 불필요한 것으로 보였습니다.
내 질문 : preg_match() 및 preg_replace()와 같은 함수를 사용하여 PHP에서 정규 표현식을 사용하면 행에 두 개 이상의 줄 바꿈 (인스턴스 사이에 공백이 있거나 없음)의 인스턴스가 있는지 확인할 수 있습니다. 총 2 줄의 줄 바꿈으로 바꿉니 까? 작동해야
preg_replace('/(\r|\n|\r\n){2,}/', '<br/><br/>', $text);
같은
이
혼란에 감사드립니다! 그건 정확히 원하는대로 작동합니다. 귀하의 원래 응답도 효과가있었습니다. – tevan
원래 응답이 '사이에 공백을 둘 수 있는지 여부'를 충족하지 못했습니다. :) – chaos
하지만 줄 바꿈이 하나만있을 때 두 줄로 바뀝니 까? 그대로 한 번 쉬어야할까요? – NonCoder