欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

自動識別WEB和WAP訪客的源碼

  發(fā)布時間:2009-06-11 12:28:32   作者:佚名   我要評論
既然要利用已經(jīng)存在的為HTML瀏覽器編寫的代碼,就需要知道請求是從HTML瀏覽器還是從WML瀏覽器過來的。同樣地,如果想重新引導的HTML瀏覽器直接到相應的HTML文檔上,WML瀏覽器到WML頁面上,以下的PHP代碼就可以做到這些。 <? // Because this script sends out HTTP head
既然要利用已經(jīng)存在的為HTML瀏覽器編寫的代碼,就需要知道請求是從HTML瀏覽器還是從WML瀏覽器過來的。同樣地,如果想重新引導的HTML瀏覽器直接到相應的HTML文檔上,WML瀏覽器到WML頁面上,以下的PHP代碼就可以做到這些。
<?
// 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.com/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";
     }
     else {
       $br = "HTML";
     }
   }
   if($br == "WML") {
// Force the browser to load the WML file instead
    header("302 Moved Temporarily");
    header("Location: ".$wmlredirect);
    exit;
   }
   else {
// Force the browser to load the HTML file instead
    header("302 Moved Temporarily");
    header("Location: ".$htmlredirect);
    exit;
   }
  ?> 
  這個判斷是在服務端完成的, PHP代碼將首先查看網(wǎng)關是否接收text/vnd.wap.vml MIME類型。如果不是,將檢測前面的字符,查看是否為WML瀏覽器。如果不符合,那么就假設為HTML瀏覽器。如果有新的WML瀏覽器,那么ID字符串也要增加。
  這個代碼基于Robert Whitinger(robert@wapsight.com)的代碼,使用了Don Amaro(donamaro.concepcion@nl.unisys.com)提供的列表。
  注意:由于只需要四個字符串就可以辨別,因此例如:"WapIDE-SDK/2.0;(R320s(Arial))" 可以使用“WapI”來代替是可行的做法,也是足夠的。
  同樣的功能也可以通過ASP來解決。先判斷請求的是“/index.wml” 或者 “/index.html” 和所需要的MIME類型。另外以下的腳本辨別的方式和上面不一樣。另外還需要網(wǎng)關告訴服務器它能接收的text/vnd.wap.wml MIME類型。該例子如下所示:
<%
Response.Buffer = TRUE
  Dim IsWap
  httpAccept = LCase(Request.ServerVariables("HTTP_ACCEPT"))
  if Instr(httpAccept,"wap") then
  IsWap=1
  Else Response.Redirect "/index.html" : Response.Flush : Response.End
End if
%>
<%Response.ContentType = "text/vnd.wap.wml"%><?xml version="1.0"?>
<%Response.Flush%>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
  <wml>
  <card id="redirect">
  <onevent type="onenterforward">
  <go href="/index.wml"/>
  </onevent>
  <p>
  <a href="/index.wml">enter</a>
  </p>
  </card>
  </wml>
  <%Response.Flush:Response.End%>

相關文章

最新評論