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 ; } } |
php 实现 jsonp 数据接口的更多相关文章
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 使用Asp.net WebAPI 快速构建后台数据接口
现在的互联网应用,无论是web应用,还是移动APP,基本都需要实现非常多的数据访问接口.其实对一些轻应用来说Asp.net WebAPI是一个很快捷简单并且易于维护的后台数据接口框架.下面我们来快速构 ...
- 腾迅股票数据接口 http/javascript
腾迅股票数据接口 http/javascript 分类: Finance Perl2012-12-21 23:48 31132人阅读 评论(3) 收藏 举报 之前使用了新浪的股票数据,由于新浪http ...
- Mock模拟后台数据接口--再也不用等后端的API啦
ok,在开发中经常需要从后台获取数据,那么有时候后台的数据接口并没有写好,所以这时候,就需要自己模拟数据接口,来实现前端逻辑, 今天数的就是阿里巴巴的一款mock产品,很好用的哦!!!! ok!这是我 ...
- Winform项目调用asp.net数据接口
最近一个WPF项目需要改写成android项目,思路是在asp.net项目中编写一个通用接口,便于其它平台下调用数据.刚接触到这些东西的时候完全是一头雾水,最根本的原因是不明白网站中的一个网页,为什么 ...
- C++ Redis mset 二进制数据接口封装方案
C++ Redis mset 二进制数据接口封装方案 需求 C++中使用hiredis客户端接口访问redis: 需要使用mset一次设置多个二进制数据 以下给出三种封装实现方案: 简单拼接方案 在r ...
- 数据接口管理工具 thx RAP
RAP是数据接口管理工具.在开发时前端将请求转至RAP,由RAP提供模拟数据:而后端使用RAP测试接口的正确性.这样RAP就成为了开发过程中的强 依赖,进而确保接口文档的实时正确性.RAP采用JSON ...
- 服务端提供的JSON数据接口与用户端接收解析JSON数据
JSON格式的服务接口:http://www.cnblogs.com/visec479/articles/4118338.html 首先来了解下JSON格式解析 json结构的格式就是若干个 键/值( ...
- 使用jQuery-AJAX–读取获得跨域JSONP数据的示例
在项目开发中,如果在同一个域名下就不存在跨域情况,使用$.getJSON()即可实现.但是需要跨域请求其他域名下面的Json数据就需要JSONP的方式去请求,跨域写法和getJSON有差异.如下: ...
随机推荐
- 华为上机:Tom的生日礼物
Tom的生日礼物 描述: 四月一日快到了,Tom想了个愚人的好办法——送礼物.嘿嘿,不要想的太好,这礼物可没那么简单,Tom为了愚人,准备了一堆盒子,其中有一个盒子里面装了礼物.盒子里面可以再放零个或 ...
- java内存模型优化建议
八.Java编程建议 根据GC的工作原理,我们可以通过一些技巧和方式,让GC运行更加有效率,更加符合应用程序的要求.一些关于程序设计的几点建议: 1)最基本的建议就是尽早释放无用对象的引用.大多数程序 ...
- iOS Core Telephony Framework
Core Telephony Framework(核心通讯框架) 概述: 这个库的前缀为CT(Core Telephony),主要用来获得用户通讯相关信息,我们可以使用这些信息来定义外部接口以便自己使 ...
- MSChart 控件
微软发布了.NET 3.5框架下的图表控件,功能很强劲,基本上能想到的图表都可以使用它绘制出来,给图形统计和报表图形显示提供了很好的解决办法,同时支持Web和WinForm两种方式,不过缺点也比较明显 ...
- SQL SERVER ->> BCP导出数据到平面文件
--开启xp_cmdshell sp_configure ‘show advanced options’, ; GO RECONFIGURE; GO sp_configure ‘xp_cmdshell ...
- 转 RMI、RPC、SOAP通信技术介绍及比对
http://www.open-open.com/home/space.php?uid=37924&do=blog&id=8974 1.RMI 使用java的程序员,对于RMI(Rem ...
- 重新格式化hdfs系统的方法
重新格式化hdfs系统的方法: (1)查看hdfs-ste.xml <span style="font-size:18px;"><property> < ...
- USACO Section 2.4: Overfencing
这题因为各种琐事耽耽搁搁做了2天,也出了挺多错误,最后出了一个结论:像这种有对neighbor有通路的图形用一个4个位表示4个方向的int进行位运算比较靠谱. /* ID: yingzho1 LANG ...
- jsp+servlet+jquery 用jquery uploadify最新版本实现多文件上传
//这是script代码 <link rel="stylesheet" type="text/css" href="uploadify/uplo ...
- ILog JRules 标识符 X 未定义
在定义枚举值时,属性“转译”(“translation”),定义字符串时需要双引号,相当于value值. 其属性值如果只有字符串,而没有双引号,在编译或者执行时就会报“标识符X未定义”的错误信息.