2012-09-29 2 views
1

저는이 채팅 서버를 만들고 있지만 꽤 잘 작동하지 않습니다. 텍스트를 보내면 먼저 base64_encode() 함수로 인코딩 된 다음 MySQL 데이터베이스로 전송됩니다. 그러면 수신기는 동일한 MySQL 데이터베이스에서 텍스트를 가져옵니다. 물론 이것은 base64_decode() 함수로 먼저 디코딩됩니다.php로 변수의 문자열 인 특수 문자를 출력하는 방법은 무엇입니까?

유일한 문제는 \n\'\t 같은 특수 문자이다 : 나는 데이터베이스에서 데이터를 가져 오는 두 개의 텍스트 영역 태그 사이를 인쇄 할 때, 내가 문자열로 \n을보고, 실제적인 줄 바꿈으로. 텍스트 영역 태그 내부 태그가 작동하지 않기 때문에,

$String = 'Line 1 \n Line 2'; 
print '<textarea>' . $String . '</textarea>'; 

//The result I want 
//<textarea> Line 1 
//Line 2 </textarea> 

기능 nl2br이 작동하지 않으며, 또한 아포스트로피 등이 다른 문자 이유는 한마디로

, 나는이 문제를 해결해야합니다.

아무도 도와 줄 수 있습니까?

감사합니다.

답변

0

이 변경하면이에

$String = 'Line 1 \n Line 2'; 
print '<textarea>' . $String . '</textarea>'; 

:

$String = "Line 1 \n Line 2"; // double quote 
print '<textarea>' . $String . '</textarea>'; 

을 ... 당신이 원하는 출력을 얻을 것이다.

+0

사실이지만 변수가 실제로 쿼리에서 제외됩니다. 그래서 먼저 문자열이 내 데이터베이스로 보내집니다 (채팅 서버이기 때문에). 그런 다음 select 쿼리로 내 데이터베이스에서 문자열을 가져 와서 다른 사용자가 이미 변수를 정의했습니다. –

1

특수 문자를 평가하려면 문자열을 큰 따옴표로 묶어야합니다.

$String = "Line 1 \n Line 2"; 
print '<textarea>' . $String . '</textarea>'; 
+0

사실이지만 변수가 실제로 쿼리에서 제외됩니다. 그래서 먼저 문자열이 내 데이터베이스로 보내집니다 (채팅 서버이기 때문에). 그런 다음 select 쿼리로 내 데이터베이스에서 문자열을 가져 와서 다른 사용자가 이미 변수를 정의했습니다. –

+0

문제는 데이터베이스에 쓰기 전에 '\ n'을 벗어나야한다는 것입니다. '\ n'과 같이 데이터베이스에 문자열을 쓰기 전에 '\ n'앞에 다른 슬래시를 넣으십시오. 그래서 이런 식으로 보일 것입니다. 'Line1 \\ n Line2' – robonerd

0

이 하나가 또한 " ... "을 사용하는 것과 동일하게 작동하지만 어쩌면 귀하의 경우에 도움이 :

$string = <<<EOT 
Line 1 \n Line 2 
EOT; 

echo '<textarea>' . $string . '</textarea>'; 

을 다른 사람이 말했듯이, 당신의 문제는 Single-Quotes입니다.

관련 문제