第一页 上页 1 2 最后页 [ 显示模式: 摘要 | 列表 ]

如何判断微信内置浏览器,首先需要获取微信内置浏览器的User Agent,经过在 iPhone 上微信的浏览器的检测,它的 User Agent 是:

Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329 MicroMessenger/5.0.1

所以通过识别 MicroMessenger 这个关键字来确定是否微信内置的浏览器了。

JAVA 判断是否微信浏览器

XML/HTML代码
  1. <%  
  2. String ua=((HttpServletRequest) request).getHeader("user-agent").toLowerCase();  
  3. if (ua.indexOf("micromessenger") > 0) {// 是微信浏览器  
  4.         validation = true;  
  5. }  
  6. %>  
  7.   
  8. /***************************************************  
  9. * 判断浏览器类型是否是IE,是则返回true,不是返回false    
  10. * ServletActionContext是struts2上下文对象    
  11. * @return boolean    
  12. **************************************************/    
  13. public   static   boolean  isIE(){    
  14.     return  ServletActionContext.getRequest().getHeader( "USER-AGENT" ).toLowerCase().indexOf( "msie" )>0?true:false ;  
  15. }  

方案一:正则表达式

通过观察规律,得出以下表达式:

Java代码
  1. ;\s?([^;]+?)\s?(Build)?/  

Java代码:

Java代码
  1. Pattern pattern = Pattern.compile(";\\s?(\\S*?\\s?\\S*?)\\s?(Build)?/");    
  2. Matcher matcher = pattern.matcher(userAgent);    
  3. String model = null;    
  4. if (matcher.find()) {    
  5.     model = matcher.group(1).trim();    
  6.     log.debug("通过userAgent解析出机型:" + model);    
  7. }  

以下为部分UserAgent,供测试,可以直接在EditPlus里验证。

 

Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; R8007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; R8007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 V1_AND_SQ_5.0.0_146_YYB_D QQ/5.0.0.2215

Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.3 Mobile Safari/537.36

Mozilla/5.0 (Linux; Android 4.2.2; zh-cn; SCH-I959 Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Version/1.0 Chrome/18.0.1025.308 Mobile Safari/535.19

Mozilla/5.0 (Linux; U; Android 4.3; zh-CN; SM-N9009 Build/JSS15J) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; U; Android 4.1.2; zh-CN; Coolpad 5891 Build/JZO54K) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.3.478 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; U; Android 4.1.2; zh-cn; Coolpad 5891 Build/JZO54K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 V1_AND_SQ_5.0.0_146_YYB2_D QQ/5.0.0.2215

Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D257 QQ/5.0.0.165

Mozilla/5.0 (Linux; Android 4.3; zh-cn; SAMSUNG-GT-I9308_TD/1.0 Android/4.3 Release/11.15.2013 Browser/AppleWebKit534.30 Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30 SogouMSE,SogouMobileBrowser/3.2.3

Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SCH-I959 Build/JDQ39) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/5.0.3.10 (Baidu; P1 4.2.2)

Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; SCH-I959 Build/JDQ39) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0

Mozilla/5.0 (Linux; Android 4.3; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36 OPR/24.0.1565.82529

Mozilla/5.0 (Linux; U; Android 4.4.4; zh-CN; Nexus 4 Build/KTU84P) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/5.2.3.0 (Baidu; P1 4.0.4)

Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.3 Mobile Safari/537.36

Mozilla/5.0 (Linux; Android 4.0.4; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/535.19 (KHTML, like Gecko) Version/4.0 LieBaoFast/2.12.0 Mobile Safari/535.19

Opera/9.80 (Android; Opera Mini/7.0.31907/34.2499; U; zh) Presto/2.8.119 Version/11.10

Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; HW-HUAWEI_C8825D/C8825DV100R001C92B943SP01; 480*800; CTC/2.0) AppleWebKit/534.30 Mobile Safari/534.30

Mozilla/5.0 (Linux; U; Android 4.4.2; zh-CN; SGP521 Build/17.1.2.A.0.314) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; Android 4.4.2; SGP521 Build/17.1.2.A.0.314) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.0.4; zh-CN; HUAWEI C8825D Build/HuaweiC8825D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.8.5.442 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; Android 4.4.2; zh-cn; SAMSUNG-SM-N9009 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.2.2; zh-CN; HTC HTL22 Build/JDQ39) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; Android 4.3; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.117 Mobile Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.2.1; zh-cn; AMOI A920W Build/JOP40D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Mozilla/5.0 (Linux; Android 4.3; SM-N9009 Build/JSS15J) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.135 Mobile Safari/537.36

Mozilla/5.0 (Linux; U; Android 4.1.1; zh-CN; GT-N7100 Build/JRO03C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.9.2.467 U3/0.8.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; U; Android 4.3; zh-cn; R8007 Build/JLS36C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30

Huawei U8800    Android 2.3.3   Baidu 2.2   Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.2 Version/4.0 Mobile Safari/530.17        有用(0)

Huawei U8800    Android 2.3.3   UC 8.7  Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31        有用(0)

Meizu MX M031   Android 4.0.3   Chrome 18   Mozilla/5.0 (Linux; Android 4.0.3; M031 Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19      有用(0)

Meizu MX M031   Android 4.0.3   Opera 12.1  Opera/9.80 (Android 4.0.3; Linux; Opera Mobi/ADR-1210241511) Presto/2.11.355 Version/12.10      有用(0)

Meizu MX M031   Android 4.0.3   -built-in *     Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M031 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30         有用(0)

Meizu MX M031   Android 4.0.3   Baidu 2.2   Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.2 Version/4.0 Mobile Safari/530.17        有用(0)

Meizu MX M031   Android 4.0.3   UC 8.7  Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M031 Build/IML74K) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31      有用(0)

Meizu M9    Android 4.0.3   QQ 3.7  MQQBrowser/3.7/Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M9 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30    Normal Mode     有用(0)

Meizu M9    Android 4.0.3   QQ 3.5  MQQBrowser/3.5/Adr (Linux; U; 4.0.3; zh-cn; M9 Build/Flyme 1.0.1;640*960)   Speed Mode  有用(0)

Meizu M9    Android 4.0.3   -built-in *     Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M9 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30       有用(0)

Meizu M9    Android 4.0.3   QQ 3.5  MQQBrowser/3.5/Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M9 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30    Normal Mode     有用(0)

Meizu MX M031   Android 4.0.3   Maxthon 2.7     Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M031 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30         有用(0)

Huawei U8800    Android 2.3.3   Maxthon 2.7     Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1         有用(0)

Huawei U8800    Android 2.3.3   QQ 3.7  MQQBrowser/3.7/Adr (Linux; U; 2.3.5; zh-cn; U8800 Build/U8800V100R001C00B528G002;480*800)   Speed Mode  有用(0)

Huawei U8800    Android 2.3.3   Dolphin 9.1     Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1         有用(0)

Huawei U8800    Android 2.3.3   QQ 3.7  MQQBrowser/3.7/Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1  Normal Mode     有用(0)

Huawei U8800    Android 2.3.3   -built-in *     Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Samsung P6200(GALAXY Tab)   Android 3.2     -built-in *     Mozilla/5.0 (Linux; U; Android 3.2; zh-cn; GT-P6200 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13      有用(0)

Huawei U8800    Android 2.3.3   Maxthon 4.0     Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1         有用(0)

Meizu MX M031   Android 4.0.3   Baidu 2.3   Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M031 Build/IML74K) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.3 Version/4.0 Mobile Safari/530.17 baidubrowser/023_1.41.3.2_diordna_069_046/uzieM_51_3.0.4_130M/1200a/963E77C7DAC3FA587DF3A7798517939D%7C408994110686468/1        有用(0)

Huawei U8800    Android 2.3.3   Baidu 2.3   Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/530.17 (KHTML, like Gecko) FlyFlow/2.3 Version/4.0 Mobile Safari/530.17 baidubrowser/042_1.6.3.2_diordna_008_084/IEWAUH_01_5.3.2_0088U/1001a/BE44DF7FABA8768B2A1B1E93C4BAD478%7C898293140340353/1         有用(0)

Huawei U8800    Android 2.3.3   Dolphin 9.2     Mozilla/5.0 (Linux; U; Android 2.3.5; zh-cn; U8800 Build/HuaweiU8800) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1         有用(0)

HTC S720e(One X)    Android 4.0.3   -built-in *     Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; HTC S720e Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30        有用(1)

HTC S720e(One X)    Android 4.0.3   UC 8.7  Mozilla/5.0 (Linux; U; Android 4.0.4; zh-cn; HTC S720e Build/IMM76D) UC AppleWebKit/534.31 (KHTML, like Gecko) Mobile Safari/534.31         有用(0)

Meizu MX M031   Android 4.0.3   Dolphin Min 2.3     Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M031 Build/IML74K) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30         有用(0)

Meizu MX M031   Android 4.0.3   QQ 4.0  MQQBrowser/4.0/Mozilla/5.0 (Linux; U; Android 4.0.3; zh-cn; M031 Build/IML74K) AppleWebKit/533.1 (KHTML, like Gecko) Mobile Safari/533.1        有用(0)

Meizu M9    Android 4.0.3   QQ 3.7  MQQBrowser/3.7/Adr (Linux; U; 4.0.3; zh-cn; M9 Build/Flyme 1.0.1;640*960)

Meizu MX2 M040  Android 4.1     UC 9.4  Mozilla/5.0 (Linux; U; Android 4.1.1; zh-CN; M040 Build/JRO03H) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/9.4.1.362 U3/0.8.0 Mobile Safari/533.1      有用(0)

Meizu MX2 M040  Android 4.1     Chrome 31   Mozilla/5.0 (Linux; Android 4.1.1; M040 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36       有用(0)

Meizu MX2 M040  Android 4.1     猎豹 2.8  Mozilla/5.0 (Linux; Android 4.1.1; M040 Build/JRO03H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.64 Mobile Safari/537.36       有用(0)

Meizu MX2 M040  Android 4.1     Baidu 4.1   Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; M040 Build/JRO03H) AppleWebKit/534.24 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.24 T5/2.0 baidubrowser/4.2.4.0 (Baidu; P1 4.1.1)       有用(0)

Meizu MX M031   Android 4.1     -built-in *     Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; M031 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30         有用(1)

Meizu MX M031   Android 4.1     UC 8.8  Mozilla/5.0 (Linux; U; Android 4.1.1; zh-CN; M031 Build/JRO03H) AppleWebKit/534.31 (KHTML, like Gecko) UCBrowser/8.8.3.278 U3/0.8.0 Mobile Safari/534.31        有用(0)

Meizu MX2 M040  Android 4.1     QQ 4.1  Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; M040 Build/JRO03H) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.1 Mobile Safari/533.1         有用(0)

Meizu MX2 M040  Android 4.1     -built-in *     Mozilla/5.0 (Linux; U; Android 4.1.1; zh-cn; M040 Build/JRO03H) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30         有用(2)

Samsung P6200(GALAXY Tab)   Android 3.2     QQ HD 2.1   Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16       有用(0)

 

Samsung P6200(GALAXY Tab)   Android 3.2     UC HD 2.3   Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3) AppleWebKit/534.31 (KHTML, like Gecko) Chrome/17.0.558.0 Safari/534.31 UCBrowser/2.3.1.257

通过验证,成功率95%以上。

PHP 判断是否微信浏览器

PHP代码
  1. function is_weixin(){  
  2.    if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !==false){  
  3.        return true;  
  4.    }      
  5.    return false;  
  6. }  

JavaScript判断是否微信浏览器

JavaScript代码
  1. function is_weixin(){  
  2.    var ua=navigator.userAgent.toLowerCase();  
  3.    if(ua.match(/MicroMessenger/i)=="micromessenger"){  
  4.     return true;  
  5.    }else{  
  6.     return false;  
  7.    }  
  8. }  

 

 两种方式

 
<c:set var="s1" value="This is One" scope="request" />
out.print(request.getAttribute("s1") ;
 
<c:set var="s2" value="This is Two"/>
out.print(pageContext.getAttribute("s2"));
 
----------------------------------------------------
JSTL 变量由 JSP 读取
 
<c:set var="JspValue1" value="Java Language One" scope="request" /> 
<c:set var="JspValue2" value="Java Language Two"/>
<%
String JspValue3 = request.getAttribute("JspValue1").toString();
String JspValue4 = pageContext.getAttribute("JspValue2").toString();
          
out.print(JspValue3);
out.print(JspValue4);
%>
 
----------------------------------------------------
 
JSP 变量由 JSTL 读取
String strContextPath = request.getContextPath();
 pageContext.setAttribute("ContextPath", strContextPath);
..
<c:out value="${ContextPath}"></out>

注明:暂时不支持跨域名下GET请求

http://192.168.66.90:8080//php/POST_GET.php

PHP代码
  1. <?php  
  2. //目前暂不支持跨域GET请求  
  3. header('Content-type: text/json');  
  4. html_entity_decode($string, ENT_QUOTES, 'UTF-8');  
  5.   
  6. //回调参数设置  
  7. $param="callback";  
  8. $callback=$_REQUEST[$param];  
  9.   
  10. //判断请求参数就是同域名下AJAX请求  
  11. if(!isset($callback)){  
  12.       
  13.     //返回多个Id  
  14.     if($_POST){  
  15.         exit(json_encode($_POST));  
  16.     }else if($_GET){  
  17.         exit(json_encode($_GET));  
  18.     }  
  19.   
  20.     //返回单个Id  
  21.     if($_POST['Id']){  
  22.         $a=$_POST['Id'];  
  23.         //echo $a;  
  24.         exit(json_encode($a));  
  25.     }else if($_GET['Id']){  
  26.         $a=$_GET['Id'];  
  27.         //echo $a;  
  28.         exit(json_encode($a));  
  29.     }  
  30.       
  31.     //强制开关按钮  
  32.     if($_POST['CT']){  
  33.         $a=$_POST['CT'];  
  34.         echo $a;  
  35.     }else if($_GET['CT']){  
  36.         $a=$_GET['CT'];  
  37.         echo $a;  
  38.     }  
  39. }  
  40.   
  41. //判断请求参数存在就是实现JSONP跨越提交  
  42. if(isset($callback)){  
  43.       
  44.     //强制开关按钮  
  45.     if($_POST['Id']){  
  46.         $a=$_POST['Id'];  
  47.         $b=json_encode($a);  
  48.         $str=$callback."(".$b.")";  
  49.     }else{  
  50.         $a=$_POST['CT'];  
  51.         $str=$callback."(".$a.")";  
  52.     }  
  53.     echo $str;  
  54.   
  55. }  
  56.   
  57. ?>  

http://192.168.66.90:8080/Ajax/s6.html

XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>ajax test</title>  
  6. <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>    
  7. <script type="text/javascript">    
  8.   
  9. $(document).ready(function(){  
  10.   
  11. //点击请求http接口,删除多条数据  
  12. $(".delall").click(function(){  
  13.   
  14.     //拼写成JSON数据格式,提交http接口JSON不需要转字符串  
  15.     //alert(JSON.stringify(obj))  
  16.     var val=$(".dellink.on").map(function(){    
  17.         return $(this).attr("id");        
  18.     }).get();  
  19.     var obj={Id:val};  
  20.     //var vot=JSON.stringify(obj);  
  21.     //alert(obj)  
  22.       
  23.     /***** 同域名下多条ID请求  
  24.     $.ajax({  
  25.         url:"/php/POST_GET.php",  
  26.         type:"post",  
  27.         dataType:"json",  
  28.         //jsonp:"callback",  
  29.         data:obj,  
  30.         success:function(data){  
  31.             //var yy=JSON.stringify(data);  
  32.             //alert(yy)  
  33.               
  34.             $.each(data.Id,function(i,item){  
  35.                 $('#'+item).slideUp();  
  36.             });      
  37.         },  
  38.         error:function(){      
  39.             alert("异常!");  
  40.         }  
  41.     });  
  42.     */  
  43.       
  44.     /***** 跨域名多条ID请求 *****/  
  45.     $.ajax({  
  46.         url:"http://192.168.66.90:8080//php/POST_GET.php",  
  47.         type:"post",  
  48.         dataType:"jsonp",  
  49.         jsonp:"callback",  
  50.         data:obj,  
  51.         success:function(data){  
  52.             //var yy=JSON.stringify(data);  
  53.             //alert(data)  
  54.               
  55.             $.each(data,function(i,item){  
  56.                 $('#'+item).slideUp();  
  57.             });      
  58.         },  
  59.         error:function(){      
  60.             alert("异常!");  
  61.         }  
  62.     });  
  63. });  
  64.   
  65. //点击请求http接口,删除单条数据  
  66. $(".dellink").click(function() {    
  67.     var thisId=$(this).attr("id");  
  68.     /***** 同域名Ajax请求  
  69.     $.ajax({  
  70.         url:"/php/POST_GET.php",  
  71.         type:"post",  
  72.         dataType:"json",  
  73.         //jsonp:"callback",  
  74.         data:{Id:thisId},  
  75.         success:function(data){  
  76.             //var yy=JSON.stringify(data);  
  77.             //alert(yy)  
  78.               
  79.             $.each(data,function(i,item){  
  80.                 $('#'+item).slideUp();  
  81.             });  
  82.         },  
  83.         error:function(){      
  84.             alert("异常!");  
  85.         }  
  86.     });  
  87.     *****/  
  88.     /****** 可支持jsonp跨域名请求 */  
  89.     $.ajax({  
  90.         url:"http://192.168.66.90:8080//php/POST_GET.php",  
  91.         type:"post",  
  92.         dataType:"jsonp",  
  93.         jsonp:"callback",  
  94.         data:{Id:thisId},//{Id:"44554547"}  
  95.         success:function(data){  
  96.             var yy=JSON.stringify(data);  
  97.             //alert(data)  
  98.             if(thisId==data){  
  99.                 $('#'+data).slideUp();  
  100.             }  
  101.         },  
  102.         error:function(){      
  103.             alert("异常!");  
  104.         }  
  105.     });  
  106. });  
  107.   
  108.   
  109. //控制开关(服务器返回0或1)  
  110. $(".control").click(function(){  
  111.     var hason=$(this).hasClass("on");  
  112.     /***** 同域名下访问http接口  
  113.     if(hason){  
  114.         $.ajax({  
  115.             url:"/php/POST_GET.php",  
  116.             type:"post",  
  117.             dataType:"json",  
  118.             data:{CT:"0"},  
  119.             success:function(data){  
  120.                 $(".control").removeClass("on");  
  121.                 $(".control").html("广告关闭")  
  122.             },  
  123.             error:function(){      
  124.                 alert("异常!");  
  125.             }  
  126.         });  
  127.     }else{  
  128.         $.ajax({  
  129.             url:"/php/POST_GET.php",  
  130.             type:"post",  
  131.             dataType:"json",  
  132.             data:{CT:"1"},  
  133.             success:function(data){  
  134.                 $(".control").addClass("on");  
  135.                 $(".control").html("广告开启")  
  136.             },  
  137.             error:function(){      
  138.                 alert("异常!");  
  139.             }  
  140.         });  
  141.     }  
  142.     */    
  143.     /***** 跨域名访问http接口 *****/  
  144.     if(hason){  
  145.         $.ajax({  
  146.             url:"http://192.168.66.90:8080//php/POST_GET.php",  
  147.             type:"post",  
  148.             dataType:"jsonp",  
  149.             jsonp:"callback",  
  150.             data:{CT:"0"},  
  151.             success:function(data){  
  152.                 if(data==0){  
  153.                     $(".control").removeClass("on");  
  154.                     $(".control").html("广告关闭")  
  155.                 }  
  156.             },  
  157.             error:function(){      
  158.                 alert("异常!");  
  159.             }  
  160.         });  
  161.     }else{  
  162.         $.ajax({  
  163.             url:"http://192.168.66.90:8080//php/POST_GET.php",  
  164.             type:"post",  
  165.             dataType:"jsonp",  
  166.             jsonp:"callback",  
  167.             data:{CT:"1"},  
  168.             success:function(data){  
  169.                 if(data==1){  
  170.                     $(".control").addClass("on");  
  171.                     $(".control").html("广告开启")  
  172.                 }  
  173.             },  
  174.             error:function(){      
  175.                 alert("异常!");  
  176.             }  
  177.         });  
  178.     }  
  179.   
  180. });  
  181. //control end  
  182.   
  183. });  
  184. </script>  
  185. </head>  
  186. <body>    
  187. <style type="text/css">  
  188. body { font-family: 'Microsoft Yahei'; margin:0; padding:0; font-weight:normal}  
  189. .dellink,.delall,.list .control{height:60px; line-height:60px; color:#fff; width:600px; font-size:22px; text-align:center; margin:2px auto;  cursor:pointer;}  
  190. .dellink{ display:block; background:#000;}  
  191. .delall{  background: #CC3366; }  
  192. .list .control{ background:#CC0033; }  
  193. .list .on{background:#006633;}  
  194. </style>  
  195. <a class="dellink on" id="1001">删除单条数据 0111</a>  
  196. <a class="dellink" id="1002">删除单条数据 022</a>  
  197. <a class="dellink on" id="1003">删除单条数据 0333</a>  
  198. <a class="dellink on" id="1004">删除单条数据 044</a>  
  199. <a class="dellink" id="1005">删除单条数据 0555</a>  
  200. <div class="delall">请求http接口【并删除多条数据】</div>  
  201. <div class="list">  
  202. <div class="control on">广告开启</div>  
  203. </div>  
  204. </body>    
  205. </html>  

 

http://192.168.66.90:8080/php/Ajax_.php?callback=

PHP代码
  1. <?php  
  2. //公共声明  
  3. header('Content-type: text/json');  
  4. html_entity_decode($string, ENT_QUOTES, 'UTF-8');  
  5.   
  6. //回调参数设置  
  7. $param="callback";  
  8. $callback=$_REQUEST[$param];  
  9.   
  10. //自造Json数据  
  11. $str2='[{"id":"1","name":"测试1"},{"id":"2","name":"测试2"}]';  
  12. $str=$callback."(".$str2.")";  
  13.   
  14.   
  15. //判断请求参数存在就会输出Json数据  
  16. //if(isset($callback)&&!empty($callback)){  
  17. if(isset($callback)){  
  18.     if (isset($_POST["mail"])&&!emptyempty($_POST["mail"])){  
  19.         echo "1";      
  20.     }else{    
  21.         //echo "N0, mail is not set";  
  22.         echo $str;  
  23.     }  
  24. }  
  25.   
  26. //判断请求参数不存在就输出错误信息  
  27. if(!isset($callback)){  
  28. header("Content-type: text/html; charset=utf-8");  
  29. $str="<h1>400 Required String parameter '{$param}' is not present</h1><hr /><small>http Request with error params: none callback function</small>";  
  30. echo $str;  
  31. //strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签  
  32. //echo strip_tags($str);  
  33. }  
  34.   
  35. ?>  

http://192.168.66.90:8080/html/test/js_Ajax.html

XML/HTML代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>无标题文档</title>  
  6.   
  7. </head>  
  8.   
  9. <body>  
  10. <input value="张三" type="text" style="width:96%; background: #F1F1ED; color:#000; text-align:center; font-size:6em; padding:0.2em; margin-bottom:0.5em; border:0.1em #333 solid " id="input"/>  
  11. <div style=" width:100%; background:#000; color:#fff; text-align:center; font-size:6em; cursor:pointer; padding:0.2em;" id="html">点击事件</div>  
  12. <script type="text/javascript">  
  13. /**  
  14. * 复杂的ajax封装  
  15. * @version 1.0  
  16. *  
  17. * 用法  
  18. *  var xmlhttp = new YAjax();  
  19. *    xmlhttp.request({  
  20. *         url : "./demo.php",  // get请求时 可以这样写 "./demo.php?name=zhangsan"  
  21. *        method : "POST",  
  22. *        data : "name=李四",  // 支持json传值 {"name":"zhangsan"}  get时不用该参数  
  23. *        receiveType : "html",  // json html or xml  
  24. *        timeout : 3000,  // 3秒  
  25. *        success : function(d) {alert(d);},  
  26. *        error : function(xmlhttp){alert('timeout');}  
  27. *    });  
  28. *  
  29. */  
  30. function YAjax() {  
  31.     thisthis._self = this;  
  32.     thisthis.xmlhttp = this.init();  
  33. }  
  34. YAjax.prototype = {  
  35.     constructor : YAjax,  
  36.       
  37.     // 初始化xmlhttpRequest  
  38.     init : function() {  
  39.         var xmlhttp = null;  
  40.       
  41.         // 针对不同浏览器建立这个对象的不同方式写不同代码  
  42.         if(window.XMLHttpRequest) {  
  43.             xmlhttp = new XMLHttpRequest();  
  44.             //针对某些特定版本的Mozillar浏览器的BUG进行修正  
  45.             if(xmlhttp.overrideMimeType) {  
  46.                 xmlhttp.overrideMimeType("text/xml");  
  47.             }  
  48.               
  49.         } else if (window.ActiveXObject) {  
  50.             var activexName = ['MSXML2.XMLHTTP', 'Microsoft.XMLHTTP'];  
  51.             for (var i=0; i<activexName.length; i++) {  
  52.                 try {  
  53.                     xmlhttp = new ActiveXObject(activexName[i]);  
  54.                     break;  
  55.                 } catch(e) {}  
  56.             }  
  57.         }  
  58.       
  59.         return xmlhttp;  
  60.     },  
  61.       
  62.     extend : function(destination, source, override) {  
  63.         if(undefined == override) override = true;  
  64.         if(typeof destination != "object" && typeof destination != "function") {  
  65.             if(!override)  
  66.                 return destination;  
  67.             else  
  68.                 destination = {};  
  69.         }  
  70.         var property = '';  
  71.         for(property in source) {  
  72.             if(override || !(property in destination)) {  
  73.                 destination[property] = source[property];  
  74.             }  
  75.         }  
  76.       
  77.         return destination;      
  78.     },  
  79.       
  80.     // json to string {name: 'lisi', age: 10} --> name=lisi&age=10  
  81.     json2String : function(jsonData) {  
  82.         var strArr = [];  
  83.         for(var k in jsonData) {  
  84.             strArr.push(k + "=" + jsonData[k]);      
  85.         }  
  86.               
  87.         return strArr.join("&");  
  88.     },  
  89.       
  90.     // 发送http 请求  
  91.     request : function(opt) {  
  92.         var _self = this,  
  93.             isTimeout = false,  
  94.             timeFlag = 0,  
  95.             options = {  
  96.                 url : "",   // string  
  97.                 data : "",  // json or string  
  98.                 method : "POST",  
  99.                 receiveType : "html",  // html json or xml  
  100.                 timeout : 7000,  
  101.                 async : true,  
  102.                 success : function(){alert("define your success function");},  
  103.                 error : function(xmlhttp){}  
  104.             };  
  105.         if("data" in opt) {  
  106.             if(typeof opt.data == "string"){} else {opt.data = this.json2String(opt.data); }      
  107.         }  
  108.         options = this.extend(options, opt);  
  109.           
  110.         this.xmlhttp.onreadystatechange = function(){  
  111.             if(_self.xmlhttp.readyState == 4) {  
  112.                 if(!isTimeout && _self.xmlhttp.status == 200) {  
  113.                     clearTimeout(timeFlag);  
  114.                     var t = options.receiveType.toLowerCase();  
  115.                     if(t == "html") {  
  116.                         options.success(_self.xmlhttp.responseText);  
  117.                           
  118.                     } else if(t == "xml") {  
  119.                         options.success(_self.xmlhttp.responseXML);      
  120.                           
  121.                     } else if(t == 'json') {  
  122.                         try {  
  123.                             var obj = JSON.parse(_self.xmlhttp.responseText);  
  124.                             options.success(obj);      
  125.                         } catch(e) {  
  126.                             var str = '(' + _self.xmlhttp.responseText + ')';  //json字符串  
  127.                             options.success(eval(str));  
  128.                         }  
  129.                     } else {}  
  130.                       
  131.                 } else {  
  132.                     clearTimeout(timeFlag);  
  133.                     options.error(_self.xmlhttp);  
  134.                 }  
  135.             }  
  136.         };  
  137.           
  138.         timeFlag = setTimeout(function(){  
  139.             if(_self.xmlhttp.readyState != 4) {  
  140.                 isTimeout = true;  
  141.                 _self.xmlhttp.abort();  
  142.                 clearTimeout(timeFlag);  
  143.              }      
  144.         }, options.timeout);  
  145.           
  146.         this.xmlhttp.open(options.method.toUpperCase(), options.url, options.async);  //打开与服务器连接  
  147.         if(options.method.toUpperCase() == "POST") {  
  148.             this.xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');  //post方式要设置请求类型  
  149.             this.xmlhttp.send(options.data);  //发送内容到服务器  
  150.         } else {  
  151.                 this.xmlhttp.send(null);  
  152.         }  
  153.     }  
  154. };  
  155.   
  156. var text=document.getElementById("input").value;  
  157. var html=document.getElementById("html");  
  158. html.onclick=function(){  
  159.   
  160. var xmlhttp = new YAjax();  
  161.   xmlhttp.request({  
  162.        url:"http://192.168.66.90:8080/php/Ajax_.php?callback=",  // get请求时 可以这样写 "./demo.php?name=zhangsan"  
  163.        method:"POST",  
  164.        data:{"mail":"zhangsan@163.com"},  // 支持json传值 {"name":"zhangsan"}  get时不用该参数 "name=李四"  
  165.        receiveType:"json",  // json html or xml  
  166.        timeout:3000,  // 3秒  
  167.        success:function(data){  
  168.        //JSON.stringify(data); //可以将json对象转换成json对符串  
  169.        //JSON.parse(jsonstr); //可以将json字符串转换成json对象  
  170.            if(data==1){  
  171.             alert("传参已被服务器接收,"+"输入框内容:"+text)  
  172.            }  
  173.            else{  
  174.             alert(JSON.stringify(data[0].name));  
  175.            }  
  176.        },  
  177.        error:function(xmlhttp){alert('timeout');}  
  178.    });  
  179. };  
  180. </script>  
  181. </body>  
  182. </html>  

 

php数组转Json

[不指定 2015/02/13 17:20 | by 刘新修 ]

 

PHP代码
  1. <?php  
  2. header("Content-Type: text/html; charset=utf-8");  
  3.   
  4. $mydb=mysql_connect("localhost","root","root");  
  5. if (!$mydb){  
  6.   die('Could not connect:'. mysql_error());  
  7. }  
  8.   
  9. $db_selected=mysql_select_db("mysql",$mydb);  
  10. //$sql = "SELECT * from Person WHERE Lastname='Adams'";  
  11. $sql="SELECT * from user";  
  12. $result=mysql_query($sql,$mydb);  
  13. //print_r(mysql_fetch_array($result));  
  14.   
  15.   
  16. //处理输出数组格式  
  17. //$db1=mysql_query("select * from `tb_info`");  
  18. /* 
  19. $arr=array(); 
  20. while($rows=mysql_fetch_array($db1)){ 
  21. $key=$rows['id'] 
  22. $arr[$key] = $rows['qucount'] 
  23. } 
  24. */  
  25.   
  26. /************************************************************** 
  27.  * 
  28.  *  使用特定function对数组中所有元素做处理 
  29.  *  @param  string  &$array     要处理的字符串 
  30.  *  @param  string  $function   要执行的函数 
  31.  *  @return boolean $apply_to_keys_also     是否也应用到key上 
  32.  *  @access public 
  33.  * 
  34.  *************************************************************/  
  35. function arrayRecursive(&$array$function$apply_to_keys_also = false)  
  36. {  
  37.     static $recursive_counter = 0;  
  38.     if (++$recursive_counter > 1000) {  
  39.         die('possible deep recursion attack');  
  40.     }  
  41.     foreach ($array as $key => $value) {  
  42.         if (is_array($value)) {  
  43.             arrayRecursive($array[$key], $function$apply_to_keys_also);  
  44.         } else {  
  45.             $array[$key] = $function($value);  
  46.         }  
  47.      
  48.         if ($apply_to_keys_also && is_string($key)) {  
  49.             $new_key = $function($key);  
  50.             if ($new_key != $key) {  
  51.                 $array[$new_key] = $array[$key];  
  52.                 unset($array[$key]);  
  53.             }  
  54.         }  
  55.     }  
  56.     $recursive_counter--;  
  57. }  
  58.      
  59. /************************************************************** 
  60.  * 
  61.  *  将数组转换为JSON字符串(兼容中文) 
  62.  *  @param  array   $array      要转换的数组 
  63.  *  @return string      转换得到的json字符串 
  64.  *  @access public 
  65.  * 
  66.  *************************************************************/  
  67. function JSON($array) {  
  68.     arrayRecursive($array'urlencode', true);  
  69.     $json = json_encode($array);  
  70.     return urldecode($json);  
  71. }  
  72.   
  73.    
  74.   
  75. $array = array  
  76.        (  
  77.           'Name'=>'希亚',  
  78.           'Age'=>20  
  79.        );  
  80.   
  81. /* 
  82. $array=array ( 
  83.   0 =>  
  84.   array ( 
  85.     'icon' =>  
  86.     array ( 
  87.       'hasPhoto' => '0', 
  88.       'photoPath' => '/resources/v20/images/boy.png', 
  89.     ), 
  90.     'age' => '24', 
  91.     'name' => '男士', 
  92.     'province' => '北京', 
  93.     'lottery' => '100元的爱玛电动车代金券', 
  94.     'mobile' => '', 
  95.   ), 
  96.   1 =>  
  97.   array ( 
  98.     'icon' =>  
  99.     array ( 
  100.       'hasPhoto' => '0', 
  101.       'photoPath' => '/resources/v20/images/boy.png', 
  102.     ), 
  103.     'age' => '24', 
  104.     'name' => '男士', 
  105.     'province' => '北京', 
  106.     'lottery' => '100元的爱玛电动车代金券', 
  107.     'mobile' => '', 
  108.   ), 
  109.   2 =>  
  110.   array ( 
  111.     'icon' =>  
  112.     array ( 
  113.       'hasPhoto' => '0', 
  114.       'photoPath' => '/resources/v20/images/boy.png', 
  115.     ), 
  116.     'age' => '25', 
  117.     'name' => '男士', 
  118.     'province' => '上海', 
  119.     'lottery' => '100元的爱玛电动车代金券', 
  120.     'mobile' => '', 
  121.   ), 
  122.   3 =>  
  123.   array ( 
  124.     'icon' =>  
  125.     array ( 
  126.       'hasPhoto' => '0', 
  127.       'photoPath' => '/resources/v20/images/boy.png', 
  128.     ), 
  129.     'age' => '24', 
  130.     'name' => '男士', 
  131.     'province' => '北京', 
  132.     'lottery' => '100元的爱玛电动车代金券', 
  133.     'mobile' => '186****1046', 
  134.   ), 
  135.   4 =>  
  136.   array ( 
  137.     'icon' =>  
  138.     array ( 
  139.       'hasPhoto' => '0', 
  140.       'photoPath' => '/resources/v20/images/boy.png', 
  141.     ), 
  142.     'age' => '24', 
  143.     'name' => '男士', 
  144.     'province' => '北京', 
  145.     'lottery' => '200元的爱玛电动车代金券', 
  146.     'mobile' => '186****1046', 
  147.   ), 
  148.   5 =>  
  149.   array ( 
  150.     'icon' =>  
  151.     array ( 
  152.       'hasPhoto' => '0', 
  153.       'photoPath' => '/resources/v20/images/boy.png', 
  154.     ), 
  155.     'age' => '24', 
  156.     'name' => '男士', 
  157.     'province' => '北京', 
  158.     'lottery' => '100元的爱玛电动车代金券', 
  159.     'mobile' => '', 
  160.   ), 
  161.   6 =>  
  162.   array ( 
  163.     'icon' =>  
  164.     array ( 
  165.       'hasPhoto' => '0', 
  166.       'photoPath' => '/resources/v20/images/boy.png', 
  167.     ), 
  168.     'age' => '24', 
  169.     'name' => '男士', 
  170.     'province' => '北京', 
  171.     'lottery' => '100元的爱玛电动车代金券', 
  172.     'mobile' => '', 
  173.   ), 
  174.   7 =>  
  175.   array ( 
  176.     'icon' =>  
  177.     array ( 
  178.       'hasPhoto' => '0', 
  179.       'photoPath' => '/resources/v20/images/boy.png', 
  180.     ), 
  181.     'age' => '24', 
  182.     'name' => '男士', 
  183.     'province' => '北京', 
  184.     'lottery' => '100元的爱玛电动车代金券', 
  185.     'mobile' => '', 
  186.   ), 
  187.   8 =>  
  188.   array ( 
  189.     'icon' =>  
  190.     array ( 
  191.       'hasPhoto' => '0', 
  192.       'photoPath' => '/resources/v20/images/boy.png', 
  193.     ), 
  194.     'age' => '24', 
  195.     'name' => '男士', 
  196.     'province' => '河南', 
  197.     'lottery' => '100元的爱玛电动车代金券', 
  198.     'mobile' => '', 
  199.   ), 
  200.   9 =>  
  201.   array ( 
  202.     'icon' =>  
  203.     array ( 
  204.       'hasPhoto' => '0', 
  205.       'photoPath' => '/resources/v20/images/boy.png', 
  206.     ), 
  207.     'age' => '24', 
  208.     'name' => '男士', 
  209.     'province' => '北京', 
  210.     'lottery' => '100元的爱玛电动车代金券', 
  211.     'mobile' => '', 
  212.   ), 
  213.   10 =>  
  214.   array ( 
  215.     'icon' =>  
  216.     array ( 
  217.       'hasPhoto' => '1', 
  218.       'photoPath' => '/201412/11/11/49/1418269782350A03EA57_c.jpg', 
  219.     ), 
  220.     'age' => '20', 
  221.     'name' => '白日做梦', 
  222.     'province' => '北京', 
  223.     'lottery' => '100元的爱玛电动车代金券', 
  224.     'mobile' => '', 
  225.   ), 
  226. ); 
  227. */  
  228.   
  229.     
  230. echo JSON($array);  
  231. ?>  

 

 

PHP代码
  1. <?php  
  2. //公共声明  
  3. header('Content-type: text/json');  
  4. html_entity_decode($string, ENT_QUOTES, 'UTF-8');  
  5.   
  6. //回调参数设置  
  7. $param="callbackAA";  
  8. $callback=$_REQUEST[$param];  
  9. $str = '{"topNew":{"specialType":245,"title":"宝宝该由谁来带","img":"http://photo.zastatic.com/photo/activity/1397451753098.jpg","url":"http://t.zhenai.com/vote/voteindex.do?specialType=244&fromMainPage=1","count":23105},"topTwo":[{"specialType":173,"title":"让疯狂眼球帮你搞定爱情","img":"http://photo.zastatic.com/photo/activity/1386918466579.jpg","url":"http://t.zhenai.com/activity/carzyEyes.do?source=0&fromMainPage=2","count":3121},{"specialType":104,"title":"你问我爱你有多深 聘礼代表我的心","img":"http://photo.zastatic.com/photo/activity/1373638053176.jpg","url":"http://t.zhenai.com/activity/brideprice.do?source=3&fromMainPage=3","count":351005}]}';  
  10.   
  11. //自造Json数据  
  12. $str2='[{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":25,"name":"男士","province":"上海","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":"186****1046"},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"200元的爱玛电动车代金券","mobile":"186****1046"},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"河南","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"1","photoPath":"/201412/11/11/49/1418269782350A03EA57_c.jpg"},"age":20,"name":"白日做梦","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""}]';  
  13. $str = $callback . "(" .$str2.")";  
  14.   
  15. //判断存在参数才输出  
  16. if(isset($callback)&&!empty($callback)){  
  17. echo $str;  
  18. }  
  19.   
  20. //判断参数是否为空,提示默认信息  
  21. if(empty($callback)){  
  22. header("Content-type: text/html; charset=utf-8");  
  23. $str="<h1>400 Required String parameter '{$param}' is not present</h1><hr /><small>http Request with error params</small>";  
  24. echo $str;
  25.  
  26. }  
  27.   
  28. ?>  

最终更新:

PHP代码
  1. <?php
  2. //公共声明
  3. header('Content-type: text/json');
  4. html_entity_decode($string, ENT_QUOTES, 'UTF-8');
  5.   
  6. //回调参数设置
  7. $param="callbackAA";
  8. $callback=$_REQUEST[$param];
  9. $str = '{"topNew":{"specialType":245,"title":"宝宝该由谁来带","img":"http://photo.zastatic.com/photo/activity/1397451753098.jpg","url":"http://t.zhenai.com/vote/voteindex.do?specialType=244&fromMainPage=1","count":23105},"topTwo":[{"specialType":173,"title":"让疯狂眼球帮你搞定爱情","img":"http://photo.zastatic.com/photo/activity/1386918466579.jpg","url":"http://t.zhenai.com/activity/carzyEyes.do?source=0&fromMainPage=2","count":3121},{"specialType":104,"title":"你问我爱你有多深 聘礼代表我的心","img":"http://photo.zastatic.com/photo/activity/1373638053176.jpg","url":"http://t.zhenai.com/activity/brideprice.do?source=3&fromMainPage=3","count":351005}]}';  
  10.   
  11. //自造Json数据
  12. $str2='[{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":25,"name":"男士","province":"上海","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":"186****1046"},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"200元的爱玛电动车代金券","mobile":"186****1046"},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"河南","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"0","photoPath":"/resources/v20/images/boy.png"},"age":24,"name":"男士","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""},{"icon":{"hasPhoto":"1","photoPath":"/201412/11/11/49/1418269782350A03EA57_c.jpg"},"age":20,"name":"白日做梦","province":"北京","lottery":"100元的爱玛电动车代金券","mobile":""}]';  
  13. $str=$callback."(".$str2.")";
  14.   
  15.   
  16. //判断请求参数存在就会输出Json数据
  17. if(isset($callback)){
  18. echo $str;
  19. }
  20.   
  21. //判断请求参数不存在就输出错误信息
  22. if(!isset($callback)){
  23. header("Content-type: text/html; charset=utf-8");
  24. $str="<h1>400 Required String parameter '{$param}' is not present</h1><hr /><small>http Request with error params: none callback function</small>";
  25. echo $str;
  26. }  
  27. ?>  

 

第一页 上页 1 2 最后页 [ 显示模式: 摘要 | 列表 ]