2011-03-02 9 views
0

I가이 기능을 사용하여 매우 표준적인 방법으로 PHP의 입력을 탈출 형태 :줄 바꿈 문자가 표시되지

mysql_real_escape_string(string) 

을하지만 어떤 이유로, 데이터베이스에서 그 내용을 당길 때 공백은 더 이상 표시되지 않으며 텍스트는 하나의 큰 블록으로 표시됩니다. 이 페이지에는 하이킹 설명 영역의 예가 나와 있습니다. http://www.comehike.com/hikes/scheduled_hike.php?hike_id=131

왜 이런 일이 발생하고이를 방지하는 방법을 알고 있습니까? 이것은 버그 또는 정상적인 동작입니까?

답변

5

HTML 기본을 알아야합니다.

줄 바꿈 은 HTML로 렌더링하지 않아야합니다.
보이게하려면 HTML 태그로 바꿔야합니다.

+2

예 : PHP의'nl2br()'함수를 사용하여. –

+0

IE : '
'을 삽입하십시오. – kjy112

+0

감사합니다! 이 일을 저에게 올바른 방법으로하고 있습니까 : $ myString = nl2br ($ myString); – Genadinik

1

정상적인 동작입니다. 참조하는 "공백"은 공백으로 간주됩니다. HTML here에서 공백이 어떻게 작동하는지 읽을 수 있습니다.

당신은 네 가지 기본 옵션이 있습니다

  1. PHP's nl2br function를 사용하여 런타임에 나누기 라인이 HTML 라인 나누기 교체를 (이 작업을 수행 할 경우 쉽게 ..., 또한 <p> 태그 전체 설명을 바꿈)
  2. 랩 (간단하지만 의미 상 올바르지 않습니다 아마도 의도하지 않은 스타일링 두통의 원인이되므로 권장하지 않음)
  3. 는 HTML에 싸여, 실제 단락에 <p> 태그
  4. 을 런타임에서 당신의 설명을 구문 분석 <pre> 태그 설명
  5. HTML 마크 업으로 텍스트 콘텐츠를 작성하여 데이터베이스에 그런 방식으로 저장합니다 (대부분의 콘텐츠 관리 시스템이 작동하는 방식입니다).