2010-02-20 4 views
0

PHP로 표를 인쇄하려면 각 행에 내용 (HTML 코드)을 CKEditor 인스턴스로로드하는 버튼이 있습니다.CKEditor setData 함수를 사용할 때 따옴표 관리

$column = '<td><a href="#" onclick="CKEDITOR.instances.editor.setData(' . "'" . $HTMLcode . "');" . '">Load</a></td>'; 
echo $column; 

HTML 코드도 있기 때문에 CSS 스타일의 따옴표를 포함

<a href="#" onclick="CKEDITOR.instances.editor.setData('<p style='text-align: center;'>Great.</p>');">Load</a> 

이에 대한 모든 해결 방법 :

나는이 결과를 가지고
<p style='text-align: center;'> 

, 분명히 코드를 나누기? 어떤 도움을 주시면 감사하겠습니다! 미리 감사드립니다, Daniel.

답변

1

일반적인 솔루션은 htmlentities()입니다 :

$column = '<td><a href="#" onclick="CKEDITOR.instances.editor.setData(' 
     . "'" . htmlentities($HTMLcode, ENT_QUOTES) . "');" . '">Load</a></td>'; 

또한 자바 스크립트에서 문자열 구문 분석을해야 addslashes()있다.

는 데이터베이스 쿼리 등이 문자 (') 따옴표이며, 큰 따옴표 ("), 백 슬래시() 및 NUL합니다 (NULL 바이트)에서 인용 할 필요가 문자 앞에 백 슬래시와 문자열을 반환합니다.

) (addslashes 이상) (를 htmlentities를 선택해 말하는 무엇

유효한 HTML 문서에서, &가. 그들은 심지어는 자바 스크립트 문을에 &amp;로 이스케이프 할 필요가없는 원시 앰퍼샌드가 없어야한다는 사실이다 CDATA 태그로 묶지 않음

+0

답변을 주신 모든 분들께 감사드립니다. 승리를위한 htmlentities :) –

1

기본적으로 문자열에 따옴표가 있고 이스케이프해야합니다.

$HTMLcode = "<p style='text-align: center;'>"; 
$column = '<td><a href="#" onclick="CKEDITOR.instances.editor.setData(' . "'" 
      . addslashes($HTMLcode) . "');" 
      . '">Load</a></td>'; 
echo $column; 

그리고 다음과 같은 HTML 코드를 얻을 것이다 :

해결책, 나는 가정, addslashes 같은 것을 사용하는 것입니다 전달되는 문자열에 따옴표 즉

<td><a href="#" onclick="CKEDITOR.instances.editor.setData('<p style=\'text-align: center;\'>');">Load</a></td> 

을 ~ CKEDITOR.instances.editor.setData이 이스케이프됩니다.

관련 문제