/** и парсит в массив $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; } }