再用HTTP_X_NETWORK_INFO看看,包含以下信息:
GPRS,10.68.8.238,13801742640,cmwap,unsecured
前提是通过GPRS访问WAP站点。
可以看看偶然兄的文章:
http://myblog.boei.cn/index.php?show=blog&id=51
和:
http://www.ebds.com.cn/bbs/showthread.php?%20<br>s=&threadid=43

解决方案 »

  1.   

    HTTP_X_NETWORK_INFO
    第二段
    HTTP_X_UP_CALLING_LINE_ID
    大写的或者你把$_SERVER信息全部保存下来分析模拟器都不行
      

  2.   

    $str = "";
     foreach ($_SERVER as $key=>$val){
           $gstr = str_replace("&","&",$val);
           $str.= "$key -> ".$gstr."<br/>\r\n";
      }我这样得到,然后打印出来可就是没有HTTP_X_UP_CALLING_LINE_ID
    这个值
    我还单独这样得:
     $str = "";
            if (isset($_SERVER['HTTP_X_NETWORK_INFO']))
            {
                $str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
                $getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','\2',$str1);
                $str = $getstr1;
            }    
            elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
            {
                $getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
                $str = $getstr2;
            }
            elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
            {
                $str3 = $_SERVER['HTTP_X_UP_SUBNO'];
                $getstr3 = preg_replace('/(.*)(11[d])(.*)/i','\2',$str3);
                $str = $getstr3;
            }
            elseif (isset($_SERVER['DEVICEID']))
            {
                $str = $_SERVER['DEVICEID'];
            }
    都没有得到这个值呢。
    大虾们,这是为何呢???
      

  3.   

    print_r($_SERVER);
    print_r($_ENV);在结果中查找,若支持则总能找得到的
      

  4.   

    你在你的wap站点上测试了吗?写一个简单的文件放在wap服务器上,通过手机来访问这个文件,看看能不能得到手机号。
      

  5.   

    to:qdlover(就看第一页) 
    是啊,使用手机访问的呢to:xuzuning(唠叨) 
    嗯,我一个个得到,就是没有手机号码这个信息和值。
      

  6.   

    to:hlddn(西藏的那片天) 
    我就是单独写了一个文件,然后放到wap站点上去用手机进行测试的我的整个测试的文件如下:
    <?php
    require("inc/constants.php");
    require("inc/functions.class.php");
    require("inc/wapdoc.class.php");
    $w=new wap_doc(CONTENT_WAP,ENC_UTF8);
    $w->set_cache_control();
    $w->set_card("test header");
    $phone = "133";
    $header = getallheaders();
    $keys = array_keys($header);
    $n = count($keys);
    $list = "";
    for($i=0;$i<$n;$i++){
    $keyname = $keys[$i];
    $list .= $keyname."==".$header[$keyname]."<br/>";
    }
    //$w->add_new_line("phonenumber:".$phone."<br/>");
    $w->add_new_line($list);
    /*
    $server = array_keys($_SERVER);
    $t = count($server);
    $strserver = "";
    for($y=0;$y< $t;$y++){
    $servername = $server[$y];
    $strserver .= $servername."==".$_SERVER[$servername]."<br/>";
    }

    $w->add_new_line("************************");
    $tmplist = "";
    $tmparray = array_keys($_SERVER);
    $tmpsize = count($tmparray);
    for($i=0;$i<$tmpsize;$i++){
    $tmpkey = $tmparray[$i];
    $tmpvalue = $_SERVER[$tmpkey];
    $tmpitem = $tmpkey."==".$tmpvalue."<br/>";
    $w->add_new_line($tmpitem);
    //$tmplist .= $tmpkey."==".$tmpvalue."<br/>";
    break;
    }


         $str = "";
         foreach ($_SERVER as $key=>$val){
                $gstr = str_replace("&","&",$val);
                $str.= "$key -> ".$gstr."<br/>\r\n";
         }
    */
    $getstr2="";
    if(isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
            {
                $getstr2 .= $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];            
            } //$w->add_new_line($strserver);
    $w->add_new_line("list=<br/>".$getstr2);
    $w->make_cards();
    $w->generate();
    ?>
    咳!!!就是得不到阿。。
      

  7.   

    while (list ($key, $val) = each ($_SERVER)) {
        $serverinfo.="[ $key => $val ]";
    }把$serverinfo保存下来看看可能有的地方网关不支持吧广州移动的可以
      

  8.   

    to:qdlover(就看第一页) 
    我就是把这些个值保存为一个字符串型,然后才输出的。就是没有这几个值不知道为何:(((((
      

  9.   

    可能各地的网关是不一样,看看下面的讨论:
    http://www.spforum.net/wdb/wdbread.php?forumid=1&filename=f_13
      

  10.   

    $headers = getallheaders();
    $ms=$headers["X-Up-Calling-Line-ID"];
      

  11.   

    $headers = getallheaders();
    $_SERVER=$headers["X-Up-Calling-Line-ID"];