HTMLコンテンツを生成するphpスクリプトを持っています。そのHTMLコンテンツをJSON経由でPHPスクリプトからWebページに送り返す方法はありますか?
はい、使用できます json_encode
HTML文字列を取得し、必要に応じてエスケープします。
[〜#〜] json [〜#〜] では、最上位の項目mustが配列またはオブジェクトであることに注意してください (それはもはや真実ではありません)、単なる文字列にすることはできません。したがって、オブジェクトを作成し、HTML文字列をオブジェクトのプロパティ(おそらく唯一のもの)にすると、結果のJSONは次のようになります。
{"html": "<p>I'm the markup</p>"}
すべての文字列データはUTF-8でエンコードされている必要があります。
$out = array(
'render' => utf8_encode($renderOutput),
'text' => utf8_encode($textOutput)
);
$out = json_encode($out);
die($out);
@ T.Jを展開するだけです。クラウダーの答え。
json_encode
は単純なhtml文字列でうまく機能しますが、私の経験ではjson_encode
はよく混同されます(または適切にエスケープすることが非常に難しくなります)。この位置にいる場合に考慮すべき2つのオプションは、最初にマークアップを[base64_encode][1]
/ decode のようなものでエンコード/デコードすることです(かなりパフォーマンスが低下します)。 )jsonを介して渡すものをより選択的にし、代わりにクライアント側で必要なマークアップを生成します。
こうする
最初にすべての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);
PHPの場合:
$data = "<html>....";
exit(json_encode($data));
次に、AJAXを使用してデータを取得し、必要な処理を行います。JQueryを使用することをお勧めします。 http://api.jquery.com/jQuery.getJSON/
それを文字列として送信できます。しかし、私が理解している限り、必要なデータのみを送信し、それらをクライアント上のHTMLにラップすることであるため、ここでJSONを使用するのはおそらく間違いです。