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 处置惩罚相干函数大全的细致内容,更多请关注ki4网别的相干文章!