묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
mysql에 저장시 nl2br을 써서 넘기고 출력하면 브라우져에서 <br />이 되는 이유는?
2003.09.09 11:53
<?
$conn=mysql_connect("localhost","root","");
mysql_select_db("guestdb");
$var=addslashes($var);
$var=nl2br($var);
$que="insert into ttt (no, var) values('$no','$var')";
$result=mysql_query($que);
echo ("<meta http-equiv='refresh' content='0; url=view.php'>");
?>
-view.php-
<?
$conn=mysql_connect("localhost","root","");
mysql_select_db("guestdb") or die("select error");
$que="select * from ttt";
$result=mysql_query($que) or die("query error");
while($row=mysql_fetch_array($result)) {
$var=stripslashes($row['var']);
echo $var;
}
?>
간단한 내용을 연습하다가 브라우져의 소스 보기를 하면 nl2br을 사용하여 저장한 것은 <br /> 즉 "br" 출력 그다음 공백 "/"가 출력됩니다.
그 이유가 뭔지 알고 싶습니다.
$conn=mysql_connect("localhost","root","");
mysql_select_db("guestdb");
$var=addslashes($var);
$var=nl2br($var);
$que="insert into ttt (no, var) values('$no','$var')";
$result=mysql_query($que);
echo ("<meta http-equiv='refresh' content='0; url=view.php'>");
?>
-view.php-
<?
$conn=mysql_connect("localhost","root","");
mysql_select_db("guestdb") or die("select error");
$que="select * from ttt";
$result=mysql_query($que) or die("query error");
while($row=mysql_fetch_array($result)) {
$var=stripslashes($row['var']);
echo $var;
}
?>
간단한 내용을 연습하다가 브라우져의 소스 보기를 하면 nl2br을 사용하여 저장한 것은 <br /> 즉 "br" 출력 그다음 공백 "/"가 출력됩니다.
그 이유가 뭔지 알고 싶습니다.
댓글 4
-
tyui
2003.09.09 12:59
-
tyui
2003.09.09 13:03
허나...
속도면에서는 preg_replace 보다 nl2br 더 빠릅니다... -
hee
2003.09.09 13:22
nl2br은 윈도우에서는 \r\n 앞에 <br />을 추가해줍니다., 변경이 아닙니다.
그래서 nl2br로 처리하면 \r\n 가 <br />\r\n 로 됩니다.
추가로 말씀드리면
디비에 넣을때는 nl2br하지 마시고 뽑아내셔서 출력할때 <textarea>가 아니면 nl2br처리 해주세요.
참고로
각 운영체제마다 new line값이 다르므로 그 값은 아래 적습니다.
Macintosh: r
Unix : n
Windows : rn -
TheMics
2003.09.09 16:29
종료 택이 없는 경우 " /"으로 마무리하는게 표준입니다;ㅂ;
php의 nl2br함수를 사용하면 nl2br이 \n을 <br /> 로 변경해줍니다.
<br /> 은 xml에서 쓰이는건데...
<br />에서 슬래쉬 앞에 공백이 하나 있는데 이는 구 브라우저에서 이 태그를 인식하지 못할 수도 있기 때문에 넣어준는것이구요...
그냥 <br>로 보이게 하실려면...
$var=preg_replace("/\n/", "<br>\n", $row[var]); 이렇게 하시면될듯...