繁体   English   中英

在使用wp_remote_post之前清理HTML内容

[英]Sanitize HTML Content before using wp_remote_post

我有一个WordPress插件,它将收集帖子的信息,例如帖子标题,帖子内容,并发送到第三方应用程序进行一些分析。

基本上,将帖子标题和帖子内容存储到数组中,将数组编码为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
    )
) );

您需要做的就是将其他标志传递给json_encode,以通知它您的代码可以包含HTML标记。 传递这两个标志应该足够了:

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
    )
) );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM