Exemplo n.º 1
0
 /** и парсит в массив $arRes                           **/
 public static function __ParseServerData(&$strServerOutput, &$arRes, &$strError)
 {
     $strError_tmp = "";
     $arRes = array();
     CUpdateClientPartner::AddMessage2Log("exec CUpdateClientPartner::ParseServerData");
     //CUpdateClientPartner::AddMessage2Log($strServerOutput, "!2!");
     //echo "strServerOutput:<br>".htmlspecialcharsbx($strServerOutput)."<br><br>";
     if (strlen($strServerOutput) <= 0) {
         $strError_tmp .= "[UPSD01] " . GetMessage("SUPP_AS_EMPTY_RESP") . ". ";
     }
     if (strlen($strError_tmp) <= 0) {
         if (SubStr($strServerOutput, 0, StrLen("<DATA>")) != "<DATA>" && CUpdateClientPartner::__IsGzipInstalled()) {
             $strServerOutput = @gzuncompress($strServerOutput);
         }
         if (SubStr($strServerOutput, 0, StrLen("<DATA>")) != "<DATA>") {
             CUpdateClientPartner::AddMessage2Log(substr($strServerOutput, 0, 100), "UPSD02");
             $strError_tmp .= "[UPSD02] " . GetMessage("SUPP_PSD_BAD_RESPONSE") . ". ";
         }
     }
     //CUpdateClientPartner::AddMessage2Log($strServerOutput, "!3!");
     //echo "strServerOutput:<br>".htmlspecialcharsbx($strServerOutput)."<br><br>";
     if (strlen($strError_tmp) <= 0) {
         //			$arRes = CUpdateClientPartner::xmlize($strServerOutput);
         $objXML = new CUpdatesXML();
         $objXML->LoadString($strServerOutput);
         $arRes = $objXML->GetArray();
         if (!is_array($arRes) || !isset($arRes["DATA"]) || !is_array($arRes["DATA"])) {
             $strError_tmp .= "[UPSD03] " . GetMessage("SUPP_PSD_BAD_TRANS") . ". ";
         }
     }
     if (strlen($strError_tmp) <= 0) {
         if (isset($arRes["DATA"]["#"]["RESPONSE"])) {
             $CRCCode = $arRes["DATA"]["#"]["RESPONSE"][0]["@"]["CRC_CODE"];
             if (StrLen($CRCCode) > 0) {
                 COption::SetOptionString(US_BASE_MODULE, "crc_code", $CRCCode);
             }
         }
         if (isset($arRes["DATA"]["#"]["CLIENT"]) && isset($arRes["DATA"]["#"]["CLIENT"][0]["@"]["DATE_TO_SOURCE"])) {
             COption::SetOptionString(US_BASE_MODULE, "~support_finish_date", $arRes["DATA"]["#"]["CLIENT"][0]["@"]["DATE_TO_SOURCE"]);
         }
     }
     if (strlen($strError_tmp) > 0) {
         CUpdateClientPartner::AddMessage2Log($strError_tmp, "CUPSD");
         $strError .= $strError_tmp;
         return False;
     } else {
         return True;
     }
 }