首页 > 代码库 > php 实现 jsonp 数据接口
php 实现 jsonp 数据接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | <?php /** * @author zzclslove * @abstract php实现jsonp接口 * @description 在控制器层直接使用 ControllerTool::json_report($data, ‘GBK‘, $jsonp); * 即可向前台js返回数据 */ class ControllerTool { /** * @abstract 将数据转换为json字符串 * @param array $data 需要输出的数据 * @param string $in_charset 输入数据的字符集,默认为GBK * @param string $var 以jsonp格式赋值变量为$var */ public static function json( $data , $in_charset = ‘GBK‘ , $var = null) { if (!self::belongToUTF8( $in_charset )) { $data_utf8 = self::iconv_object( $in_charset , ‘UTF-8‘ , $data ); } if (! empty ( $var )) { echo "var " . $var , "=" ; } return json_encode( $data_utf8 ); } /** * @abstract 将数据以json格式输出 * @param array $data 需要输出的数据 * @param string $in_charset 输入数据的字符集,默认为GBK * @param string $var 以jsonp格式赋值变量为$var输出 */ public static function echo_json( $data , $in_charset = ‘GBK‘ , $var = null) { echo self::json( $data , $in_charset , $var ); } public static function echo_parent_callback_json( $data , $in_charset = ‘GBK‘ , $parent_callback = null) { echo ‘<script>try{document.domain="webdev.com";}catch(e){}‘ . ‘parent.‘ . $parent_callback . ‘(‘ .self::json( $data , $in_charset ). ‘)‘ . ‘</script>‘ ; } /** * @abstract json格式报告结果 * @param array $data 数据正文 * @param string 数据正文的字符集 * @param string $var 以jsonp格式赋值变量为$var输出 */ public static function json_report( $data = array (), $in_charset = ‘GBK‘ , $var = null, $parent_callback = null) { $json_data = array (); $json_data [ ‘data‘ ] = $data ; if (! empty ( $parent_callback )) { self::echo_parent_callback_json( $json_data , $in_charset , $parent_callback ); } else { self::echo_json( $json_data , $in_charset , $var ); } } private static function belongToUTF8( $charset ) { $utf8 = array ( ‘utf8‘ , ‘UTF-8‘ ); return in_array( $charset , $utf8 ); } /** * 对象字符集转换 * @param string $in_charset 输入字符集 * @param string $out_charset 输出字符集 * @param mixed $in_obj 输入对象 */ public static function iconv_object( $in_charset , $out_charset , $in_obj ) { $out_obj = array (); self::do_iconv_object( $in_charset , $out_charset , & $in_obj , & $out_obj ); return $out_obj ; } } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。