2014-02-27 3 views
0

런타임시 (\ n) 텍스트 영역에 줄 바꿈을 추가하려고하지만 실제로 줄 바꿈을 표시하는 대신 \ n에 텍스트 영역을 넣습니다. 나는 Link 1link 2에 대한 다양한 주제를 읽었으며 아무런 성공도 거두지 못했습니다. 텍스트 영역 내에서 데이터가 업데이트되는 방식이 될 수도 있지만 중요하지 않습니다. JSON 응답의 내 데이터가 jQuery를 통해 PHP 파일에서 JSON을 통해 가져오고 표시는html 텍스트 영역에 줄 바꿈을 추가합니다.

예 :

{"error":"2","err_msg":"","data":"<p class=\"left\">Aligned left text<\/p><br>Sub text <br>"} 

텍스트 영역의 텍스트해야 다음 화면 :

[left]Aligned left text[/left] 
Sub text 

그러나에 내 페이지가 나타납니다

[left]Aligned left text[/left]\nSub text 

관련 HTML 태그를 wh로 변환하는 PHP 함수가 있습니다. 내가 그들을 원하지만 어떤 이유로 줄 바꿈

$string = preg_replace_callback('(\<p class="left"\>(.*?)\</p\>)is', function($matches){ 
    $txt = $matches[1]; 
    return '[left]'.$txt.'[/left]\n'; 
}, $string); 

$string = str_replace('<br>','\n',$string); 

die(json_encode(array('error' => '2', 'err_msg' => '', 'data' => $string))); 

작동하지 않습니다에서 작동하지 않는 더 많은 서식 및 다른 태그하지만에서만 줄 바꿈을 있습니다.

이 변경 텍스트 영역

$('#edit').val(json.data) 
<textarea id="edit" ></textarea> 
+0

HTML (
)의 올바른 개행을 잘못된 '(\ n')으로 바꾸는 것 같습니다. –

+0

동일한 문제가 없습니다. 아무런 줄 바꿈도하지 않습니다. 그냥 새 줄을 표시 할
을 표시하십시오. –

+0

대체 된 문자열을 표시하려는 위치는 어디입니까? – Zword

답변

3

줄 바꿈 &#10; 및 캐리지 리턴 &#13;의 HTML 엔티티를 사용해보십시오에 표시해야한다.

2

시도, 아포스트로피로 캡슐화 문자열 리터럴을 사용하지 마십시오

$string = str_replace("<br>", "\n", $string)

'this string' 및 PHP에서 "this string" 사이에 상당한 차이가 있습니다; 아포스트로피를 사용하여 문자열을 PHP로 캡슐화하면 \nchr(10) 대신 \n으로 처리됩니다.

관련 문제