根据你的发送方式来定
$_GET
$_POST
$_SERVER['HTTP_RAW_POST_DATA']

解决方案 »

  1.   

    我是使用XMLHTTP对象发送的

    xmlhttp = new ActiveXOject("Msxml2.XMLHTTP");
    xmlhttp.open("GET","test.php", false);
    xmlhtp.send("<?xml version='1.0' encoding='gb2312'?><company>这是测试</company>");
    PHP怎么接收这样的数据?
      

  2.   

    $_SERVER['HTTP_RAW_POST_DATA']
    随浏览器和php的版本不同,可能会得到粮行相同的数据
      

  3.   

    我以前用xmlhttp
    你可能这么考虑:
    var msg = "<?xml version='1.0' encoding='gb2312'?><company>这是测试</company>";
    xmlhttp = new ActiveXOject("Msxml2.XMLHTTP");
    xmlhttp.open("GET","test.php?msg"+msg, false);
    xmlhtp.send("");在客户端你就用
    $_GET['msg']来接收服务端的数据了!
      

  4.   

    我知道这样可以,不过我想知道怎么样接收XML数据
      

  5.   

    你是要怎么分析数据。底下是我写的一个程序片断。你可以参考下
    function SearchDetail(strCOLID,strISMGID,strUserNum){
      var oXMLDoc = new ActiveXObject('MSXML');
      sURL = "xmlindex.php?strInClude=modules/dycx/detail.php&strCOLID="+strCOLID+"&strISMGID="+strISMGID+"&strUserNum="+strUserNum;
      oXMLDoc.url = sURL;
      var oRoot   =oXMLDoc.root; 
      if(oRoot.children != null){    
        oItem         = oRoot.children;
        nOK           = oItem.item(0).text;
        strUserNum    = oItem.item(1).text;
        strCOLID      = oItem.item(2).text;
        strCOLName    = oItem.item(3).text;
        strISMGID     = oItem.item(4).text;
        strISMGName   = oItem.item(5).text;
        nBusiState    = oItem.item(6).text;
        nFeeType      = oItem.item(7).text;
        strFeeName    = oItem.item(8).text;
        strFeeNum     = oItem.item(9).text;
        strScribeTime = oItem.item(10).text;
        strCancelTime = oItem.item(11).text;
        strRe     = oItem.item(12).text;
        if (nOK == "1"){                                                // 查询成功
          document.all.UserNum.innerHTML = strUserNum;      
          document.all.ColName.innerHTML = strCOLName+" ["+strCOLID+"]";
          document.all.ISMGID.innerHTML = strISMGName+" ["+strISMGID+"]";
          document.all.FeeType.innerHTML = strFeeName+" ["+nFeeType+"]";
          document.all.FeeNum.innerHTML = strFeeNum;
          document.all.ScribeTime.innerHTML = strScribeTime;
          document.all.CancelTime.innerHTML = strCancelTime;
          document.all.Re.innerHTML = strRe;
          if (nBusiState == "1"){
            document.all.StateType.innerHTML = "订阅";
          }
          if (nBusiState == "0"){
            document.all.StateType.innerHTML = "取消订阅";
          }
          if (nBusiState == "2"){
            document.all.StateType.innerHTML = "暂停";
          }
          Detail.style.display = "inline";
        }else{                                                          // 不成功
          alert("对不起,没有查询到详细信息");
          return false;
        }
      }
      return true;
    }
    ##############################
    modules/dycx/detail.php
      if(basename($HTTP_SERVER_VARS["PHP_SELF"]) != 'xmlindex.php'){
        header("HTTP/1.0 404");    
        exit;
      }
      $strCOLID   = Trim($strCOLID);                                    // 栏目号
      $strISMGID  = Trim($strISMGID);                                   // 网关号
      $strUserNum = Trim($strUserNum);                                  // 用户号码
      $result = $db->Execute("SELECT  a.COLID as COLID,b.Name as ColName,c.Name as FeeName,a.UserNum as UserNum,
                                      a.ISMGID as ISMGID,d.Name as ISMGName,a.FeeType as FeeType,a.FeeNum as FeeNum,
                                      a.ScribeTime as ScribeTime,a.CancelTime as CancelTime,a.Re as Re,a.BusiState as BusiState
                                      FROM t_busi_user as a, t_busi_col as b, t_sys_feetype as c, t_sys_ismg as d
                                      Where a.COLID = '".$strCOLID."' And a.ISMGID = '".$strISMGID."' And a.UserNum = '".$strUserNum."' 
                                      And a.COLID = b.ID And a.FeeType = c.ID And a.ISMGID = d.ID");
      if (!$result->EOF){
        $strUserNum     = trim($result->fields("UserNum"));             // 用户号码
        $strCOLID       = trim($result->fields("COLID"));               // 栏目号
        $strCOLName     = trim($result->fields("ColName"));             // 栏目名称
        $strISMGID      = trim($result->fields("ISMGID"));              // 网关ID
        $strISMGName    = trim($result->fields("ISMGName"));            // 网关名称
        $nBusiState     = trim($result->fields("BusiState"));           // 事件状态
        $nFeeType       = trim($result->fields("FeeType"));             // 付费类型
        $strFeeName     = trim($result->fields("FeeName"));             // 付费名称
        $strFeeNum      = trim($result->fields("FeeNum"));              // 付费号码
        $strScribeTime  = trim($result->fields("ScribeTime"));          // 订阅时间
        $strCancelTime  = trim($result->fields("CancelTime"));          // 退订时间
        $strRe      = htmlspecialchars($result->fields("Re"));  // 备注
        $nOK = 1;
      }else{
        $nOK = 0;  
      }
      echo "<?xml version=\"1.0\" encoding=\"gb2312\"?>\n";
      echo "<DETAIL>\n";
      echo "<OK>".$nOK."</OK>\n";
      echo "<RESULT>".$strUserNum."</RESULT>\n";
      echo "<RESULT>".$strCOLID."</RESULT>\n";
      echo "<RESULT>".$strCOLName."</RESULT>\n";
      echo "<RESULT>".$strISMGID."</RESULT>\n";
      echo "<RESULT>".$strISMGName."</RESULT>\n";
      echo "<RESULT>".$nBusiState."</RESULT>\n";
      echo "<RESULT>".$nFeeType."</RESULT>\n";
      echo "<RESULT>".$strFeeName."</RESULT>\n";
      echo "<RESULT>".$strFeeNum."</RESULT>\n";
      echo "<RESULT>".$strScribeTime."</RESULT>\n";
      echo "<RESULT>".$strCancelTime."</RESULT>\n";
      echo "<RESULT>".$strRe."</RESULT>\n";
      echo "</DETAIL>\n";
      

  6.   

    “不过我想知道怎么样接收XML数据”
    首先,php并不能知道所接收的数据是否为xml。所以将把他视为字符串
    其次,解析xml的工作可交由domxml来做
    具体做法可参见http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=118164
      

  7.   

    to zhuxz(笨笨猪):你的这个是用PHP生成XML,用DOM来解析的,这部分我已经实现。不过还是谢谢
      

  8.   

    老大,你的代码中并没有提及到如何用PHP接收客户端发送的数据
      

  9.   

    $xmldoc = xmldoc($_SERVER['HTTP_RAW_POST_DATA']);
      

  10.   

    $_SERVER["HTTP_RAW_POST_DATA"]这个东西用来接收post过来的完整数据,但是这个东西php有一个限制,凡是提交时候的enctype="application/x-www-form-urlencoded"的话,HTTP_RAW_POST_DATA是不会有内容的。只有将enctype="text/xml"或者其它内容,这里面才有值。
      

  11.   

    羽高?老版主哦,又回来了?
    我记得我最开始学PHP的时候(01年吧好像是)你和羽凡是这里的版主。
    后来我有二年没来了,直到去年才来的。。
    前阵子偶然在PHP手册中中文文档翻译小组发现你的名字了^_^
    向你学习!