2016-04-15 10 views
0

私は、投稿タイトル、投稿内容などの投稿の情報を収集し、分析を行うためにサードパーティのアプリケーションに送信するWordPressプラグインを使用しています。wp_remote_postを使用する前にHTMLコンテンツをサニタイズします

基本的に投稿タイトルとコンテンツを配列に格納し、配列をJSON形式にエンコードし、wp_remote_post経由で第三者アプリケーションに送信します。私はいくつかのhtmlタグを含んでいて、JSONデータを破壊するかもしれない投稿のコンテンツに挑戦しています。

投稿コンテンツがJSONデータを破損しないようにするにはどうすればよいですか?それを他の方法で消毒すべきですか?

として以下のコード例:

$args = array(
    'title' => get_the_title(), 
    'content' => get_the_content() 
); 

$json = json_encode($args); 

wp_remote_post('http://dummydomain.com/', array(
    'body' => array(
     'data' => $args 
    ) 
)); 

答えて

0

あなたがする必要があるすべてはあなたのコード缶は、HTMLタグが含まれていることを通知するために、json_encodeする追加のフラグを渡すことです。この二つのフラグを渡すことは十分なはずです:

JSON_HEX_TAG - すべての<と> u003Cと\ u003Eを\に変換されます。 PHP 5.3.0から利用可能です。 JSON_HEX_QUOT - すべての "u0022を\に変換されているPHP 5.3.0以降で使用可能

http://php.net/manual/en/json.constants.php

あなたのコードは次のようになります。

$args = array(
    'title' => get_the_title(), 
    'content' => get_the_content() 
); 

$json = json_encode($args, JSON_HEX_TAG | JSON_HEX_QUOT); 

wp_remote_post('http://dummydomain.com/', array(
    'body' => array(
     'data' => $json 
    ) 
)); 
関連する問題