注意:文章中$$符号只有一个,因程序问题提交后变成了两个。

自动识别WEB和WAP手机用户的源代码

自动识别web和wap手机用户的源代码下载
既然要利用已经存在的为html浏览器编写的代码,就需要知道请求是从html浏览器还是从wml浏览器过来的。同样地,如果想重新引导的html浏览器直接到相应的html文档上,wml浏览器到wml页面上,以下的php代码就可以做到这些。
既然要利用已经存在的为html浏览器编写的代码,就需要知道请求是从html浏览器还是从wml浏览器过来的。同样地,如果想重新引导的html浏览器直接到相应的html文档上,wml浏览器到wml页面上,以下的php代码就可以做到这些。
0<?
// because this script sends out http header information,
// the first characters in the file must be the <? php tag.

// relative url to your html file
  $$htmlredirect = “/html/my_htmlpage.html“ ;
// absolute url to your wml file 
   $$wmlredirect = “http://wap.mysite***/wml/my_wmldeck.wml“ ;

   if ( strpos ( strtoupper ( $$http_accept ), “vnd.wap.wml“ ) > 0)
{ // check whether the browser/gateway says it accepts wml.
    $$br = “wml“ ;
   }
   else {
     $$browser = substr (trim( $$http_user_agent ),0,4);
    if ( $$browser == “noki“ || // nokia phones and emulators
        $$browser == “eric“ || // ericsson wap phones and emulators
       $$browser == “wapi“ || // ericsson wapide 2.0
       $$browser == “mc21“ || // ericsson mc218
       $$browser == “aur “ || // ericsson r320
       $$browser == “r380“ || // ericsson r380
       $$browser == “up.b“ || // up.browser
       $$browser == “winw“ || // winwap browser
       $$browser == “upg1“ || // up.sdk 4.0
       $$browser == “upsi“ || // another kind of up.browser ??
       $$browser == “qwap“ || // unknown qwapper browser
       $$browser == “jigs“ || // unknown jigsaw browser
       $$browser == “java“ || // unknown java based browser
       $$browser == “alca“ || // unknown alcatel-be3 browser (up based?)
       $$browser == “mits“ || // unknown mitsubishi browser
       $$browser == “mot-“ || // unknown browser (up based?)
       $$browser == “my s“ ||  // unknown ericsson devkit browser ?
$$browser == “wapj“ || // virtual wapjag www.wapjag.de
$$browser == “fetc“ || // fetchpage.cgi perl script from www.wapcab.de
$$browser == “alav“ || // yet another unknown up based browser ?
       $$browser == “wapa“ ) // another unknown browser (web based “wapalyzer“?)
       {
       $$br = “wml“ ;
39.     }
40.     else {
41.       $$br = “html“ ;
42.     }
43.   }
44.
45.   if ( $$br == “wml“ ) {
46.// force the browser to load the wml file instead
47.    header( “302 moved temporarily“ );
48.    header( “location: “ . $$wmlredirect );
49.    exit ;
50.   }
51.   else {
52.// force the browser to load the html file instead
53.    header( “302 moved temporarily“ );
54.    header( “location: “ . $$htmlredirect );
55.    exit ;
56.   }
57.  ?> 
  这个判断是在服务端完成的, php代码将首先查看网关是否接收text/vnd.wap.vml mime类型。如果不是,将检测前面的字符,查看是否为wml浏览器。如果不符合,那么就假设为html浏览器。如果有新的wml浏览器,那么id字符串也要增加。
  这个代码基于robert whitinger(robert@wapsight***)的代码,使用了don amaro(donamaro.concepcion@nl.unisys***)提供的列表。
  注意:由于只需要四个字符串就可以辨别,因此例如:“wapide-sdk/2.0;(r320s(arial))“ 可以使用“wapi”来代替是可行的做法,也是足够的。
  同样的功能也可以通过asp来解决。先判断请求的是“/index.wml” 或者 “/index.html” 和所需要的mime类型。另外以下的脚本辨别的方式和上面不一样。另外还需要网关告诉服务器它能接收的text/vnd.wap.wml mime类型。该例子如下所示:
01.<%
02.response.buffer = true
03.  dim iswap
04.  httpaccept = lcase(request.servervariables( “http_accept“ ))
05.  if instr(httpaccept, “wap“ ) then
06.  iswap=1
07.  else response.redirect “/index.html“ : response. flush : response. end
08.end if
09.%>
10.<%response.contenttype = “text/vnd.wap.wml“ %><?xml version= “1.0“ ?>
11.<%response. flush %>
12.<!doctype wml public “-//wapforum//dtd wml 1.1//en“
13.“http://www.wapforum***/dtd/wml_1.1.xml“ >
14.  <wml>
15.  <card id= “redirect“ >
16.  <onevent type= “onenterforward“ >
17.  <go href= “/index.wml“ />
18.  </onevent>
19.  <p>
20.  <a href= “/index.wml“ >enter</a>
21.  </p>
22.  </card>
23.  </wml>
24.  <%response. flush :response. end %>
good 24

发表评论

文明评论,重在参与

暂无评论!
用著作权法来保护软件是否真的有 07-28
杀毒软件:只在搞娱乐,从未杀过 07-28
小谈高通反垄断 07-28
印度将推出百元智能机 山寨厂商 07-28
高通垄断之痛:不是国产手机大而 07-28
一张图读懂阿里巴巴眼花缭乱资本 07-28
滴滴打车副总裁张晶离职 高层换 07-28
小米官网明日首发小米4 预约即 07-28
如何勾引马云马化腾花钱买你公司 07-28
云智慧成为2014 Web性能 07-28
顺丰试水微信扫码支付:发快递无 07-28
从Facebook看百度的移动 07-28
返回ASP标签-返回首页
首页 社区 工具 关于 网址
切换:1.0/2.0-电脑-//
2009-2025 版权所有 wap123.cn