JSON 경유 HTML 코드 전송
HTML 콘텐츠를 생성하는 php 스크립트를 가지고 있습니다.그 HTML 콘텐츠를 JSON을 통해 php 스크립트에서 제 웹페이지로 반송할 수 있는 방법이 있나요?
네, HTML 문자열을 사용하여 유효한 JSON이 되기 위해 필요에 따라 이스케이프할 수 있습니다(플래그를 사용하지 않는 한, 안타깝게도 불필요한 작업도 할 수 있습니다.예를 들어, 원래 문자열이 다음과 같은 경우:
<p class="special">content</p>
...json_encode이 생성됩니다.
"<p class=\"special\">content<\/p>"
불필요한 백슬래시가 있는 것을 알 수 있습니다./거의 끝나갈 무렵에.를 사용할 수 있습니다.JSON_UNESCAPED_SLASHES플래그를 사용하여 불필요한 백슬래시를 방지합니다. json_encode(theString, JSON_UNESCAPED_SLASHES);생산:
"<p class=\"special\">content</p>"
이렇게 하기
먼저 모든 HTML 콘텐츠를 어레이에 저장하고 다음으로 실행한다.json_encode
$html_content="<p>hello this is sample text";
$json_array=array(
'content'=>50,
'html_content'=>$html_content
);
echo json_encode($json_array);
모든 문자열 데이터는 UTF-8로 인코딩되어야 합니다.
$out = array(
'render' => utf8_encode($renderOutput),
'text' => utf8_encode($textOutput)
);
$out = json_encode($out);
die($out);
PHP의 경우:
$data = "<html>....";
exit(json_encode($data));
그런 다음 AJAX를 사용하여 데이터를 가져와 원하는 작업을 수행해야 합니다.JQuery를 사용할 것을 권장합니다.http://api.jquery.com/jQuery.getJSON/
String으로 보낼 수 있습니다.왜 안 돼요?하지만 여기서 JSON을 잘못 사용하고 있는 것 같습니다.제가 알기론 필요한 데이터만 전송하고 클라이언트의 HTML로 랩하는 것이 포인트입니다.
@T.J. Crowder의 답변에 대해 자세히 말씀드리겠습니다.
json_encode간단한 html 스트링으로 충분하지만 내 경험상으로는json_encodephp와 혼합된 길고 복잡한 중첩된 html에 의해 종종 혼란스러워진다(또는 적절히 이스케이프가 어려워진다).이 위치에 있을 경우 고려해야 할 두 가지 옵션은 다음과 같습니다. 먼저 다음과 같은 방법으로 마크업을 인코딩/디코딩합니다.[base64_encode][1]/decode(퍼포먼스 히트를 약간 줄인다) 또는 (가능하다면) json을 통해 전달되는 내용에 대해 좀 더 선별적으로 선택하고 대신 클라이언트 측에서 필요한 마크업을 생성합니다.
이 모든 대답들이 나에게 통하지 않았다.
하지만 이건 그렇다.
json_encode($array, JSON_HEX_QUOT | JSON_HEX_TAG);
이 답변 덕분에.
언급URL : https://stackoverflow.com/questions/5064561/sending-html-code-through-json
'programing' 카테고리의 다른 글
| React ref.current 값이 변경되었는지 어떻게 알 수 있습니까? (0) | 2023.02.10 |
|---|---|
| 브라우저에서 angularjs의 $rootScope 개체를 디버깅하는 방법 (0) | 2023.02.10 |
| Angular js - ng-repeat이 비어 있는 경우 메시지 표시 (0) | 2023.02.10 |
| 한 두 필드만 빼고 다 선택할 수 있어요? 작가 경련 없이? (0) | 2023.02.10 |
| URL $_GET은 작동하지 않습니다. (0) | 2023.02.10 |