WordPress JSON 处理相关函数大全-WordPress

资源魔 56 0

wp_json_encode

编码成 JSON,而且进行一些完好性反省。

wp_json_encode( $data, $options = 0, $depth = 512 )

简略说下 WordPress 引进这个函数的缘由:

起首没有同 PHP 版本 json_encode 函数支持没有同的参数。PHP 5.3 以前只支持 一个参数 $data,PHP 5.3 引进了 $options 参数,PHP 5.5 又引进了 $depth 参数。以是 WordPress 适配没有同版本的 PHP,wp_json_encode 都支持三个参数,兼容没有同版本的 PHP。

正在 json_encode 以前,wp_json_encode 应用函数 _wp_json_prepare_data 对数据进行清算,假如 boolean,integer,double,string,NULL 这些类型,间接前往,假如数组,持续应用 _wp_json_prepare_data 函数对数组中的每一个元素进行清算,假如是工具,假如该工具的 class 完成了 JsonSerializable 接口,则前往 $data = $data->jsonSerialize(),不然,持续应用 _wp_json_prepare_data 对工具中的每一个属性进行清算。

而后应用 json_encode 进行编码,假如不可功,则应用 _wp_json_sanity_check 对数据进行完好性解决,最初再应用 json_encode 进行编码。_wp_json_sanity_check 次要应用函数 _wp_json_convert_string 对数据进行深度 UTF-8 检测以及转换。

以是倡议应用 wp_json_encode 对变量进行 JSON 编码,它的牢靠性更高。

wpjam_json_encode

wp_json_encode( $data, $options = JSON_UNESCAPED_UNICODE, $depth = 512 )

PHP5.4 JSON 新增了一个选项:JSON_UNESCAPED_UNICODE,故名思议:没有要编码成 Unicode,让中文更可读。

以是咱们写了一个 wpjam_json_encode 函数,相比 wp_json_encode,就是将 $options 参数默许值设置为 JSON_UNESCAPED_UNICODE,这样间接应用 wpjam_json_encode($data),中文就没有会被编码成 unicode,更可读。

只需你装置 WPJAM Basic 插件,你的 WordPress 就会有这个函数。

wp_send_json

间接发送 JSON 数据。

wp_send_json( $response, $status_code = null )

他起首输入 application/json 的 Content-Type 头,假如 $status_code 没有为空,则输入 $status_code 的状态码。

而后挪用 wp_json_encode 对数据进行编码。

wpjam_send_json

wpjam_send_json( $response, $status_code = null )

一样为了可以 JSON 编码之后,中文更可读,咱们也写了 wpjam_send_json 函数,它以及 wp_send_json 简直分歧,只是挪用对数据进行编码的函数是 wpjam_json_encode。

另外假如传入的数据是 WP_Error 的实例,那末 wpjam_send_json 间接输入 errcode 以及 errmsg JSON。假如不设置 errcode,则 wpjam_send_json 主动加之 errcode=>0

装置 WPJAM Basic 插件,你的 WordPress 就会有这个函数。

wp_send_json_success 以及 wp_send_json_error

WordPress 还提供 wp_send_json_success 以及 wp_send_json_error 两个函数:

wp_send_json_success( $data = null, $status_code = null )
wp_send_json_error( $data = null, $status_code = null )

wp_send_json_success 先输入 success 为 true,而后把数据 $data 放到 data 外面输入。wp_send_json_error 则会判别 $data 能否为 WP_Error 实例,假如是,则输入 code 以及 message 的数组。咱们完成的 wpjam_send_json 曾经可以主动化解决这些谬误了。

wp_is_json_request

判别以后申请是否是 JSON 申请,或许前往 JSON 后果,这个函数不参数,间接应用:

wp_is_json_request()

它经过判别 $_SERVER['HTTP_ACCEPT'] 中含有 application/json,或许 $_SERVER['CONTENT_TYPE'] 等于 application/json。

wp_is_jsonp_request

判别以后申请是否是 JSONP 申请,或许前往 JSONP 后果,这个函数不参数,间接应用:

wp_is_jsonp_request()

它起首判别 $_GET['_jsonp'] ,能否存正在,而后经过函数 wp_check_jsonp_callback 判别它的值能否非法。

wp_check_jsonp_callback

判别 JSONP callback 是否是一个一个非法的 JavaScript callback 函数:

wp_check_jsonp_callback( $callback )

非法的 JavaScript callback 函数只能数字加字符,和英文点号。

以上就是WordPress JSON 解决相干函数年夜全的具体内容,更多请存眷资源魔其它相干文章!

标签: WordPress wordpress教程 wordpress自学 wordpress技术

抱歉,评论功能暂时关闭!