사용자가 제출하는 양식에 textarea 필드가 있고이 텍스트 필드가 MySQL 데이터베이스에 저장됩니다. 값을 검색 할 때 nl2br을 실행하여 줄 바꿈을 br 태그로 변환합니다. 그런 다음 str_replace를 사용하여 이중 br를 p 태그로 대체합니다. 문제는 대체되는 것이 아닙니다. 나는 이것에 대해 여러 번 살펴 봤는데 무엇이 잘못 될 수 있는지 알 수 없다.br 태그가 작동하지 않는 str_replace
다음은 HTML 출력입니다 :
Windows XP Home/Professional
<br />(32 and 64 bit)
<br />
<br />Test Operating System 2
<br />(32 and 64 bit)
<br />
<br />Test Operating System 3
<br />(64 bit)
가 여기 내 PHP의 :
이$FORMATTED = str_replace("<br /><br />", "</p><p>", $SUPPORTED_PLATFORMS);
$ FORMATTED의 출력은 정확히 위의 HTML 출력과 동일 보인다. 필자는 p 태그로 모든 back to back br 태그를 대체하고 모든 단일 br 태그를 원래 그대로 유지하려고합니다.
감사합니다.
이 있습니다. 브라우저의 렌더링 된 뷰에 표시되는 것을 신뢰하지 마십시오. 그것은 당신에게 거짓말을 할 것입니다. 언제나 먼저'view source'를 먼저 체크하고, 텍스트를 캡쳐하여 16 진수 편집기를 통해 실행하여 문자열에있는 것을 정확하게 봅니다. –
연속적인'br' 태그를 바꾸려면 정규 표현식을 사용해야합니다. 'preg_replace ('/
\ s *
', '
', $ SUPPORTED_PLATFORMS);'\ s'는 공백 문자 – jaudette
을 대체합니다. @MarcB. 내가 게시 한 HTML은 혼동스러워하는 뷰 소스에서 가져온 것입니다. 그래서 str_replace에있는 br 사이에 \ r \ n을 추가하는 것만 큼 쉽습니까? 나는 지금 그것을 시도 할 수있다. ... – Jason