- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/update_client_partner.php
- Класс: CUpdateClientPartner
- Вызов: CUpdateClientPartner::__ParseServerData
static function __ParseServerData(&$strServerOutput, &$arRes, &$strError)
{
$strError_tmp = "";
$arRes = array();
CUpdateClientPartner::AddMessage2Log("exec CUpdateClientPartner::ParseServerData");
//CUpdateClientPartner::AddMessage2Log($strServerOutput, "!2!");
//echo "strServerOutput:
".htmlspecialcharsbx($strServerOutput)."
";
if ($strServerOutput == '')
$strError_tmp .= "[UPSD01] ".GetMessage("SUPP_AS_EMPTY_RESP").". ";
if ($strError_tmp == '')
{
if (mb_substr($strServerOutput, 0, mb_strlen("")) != "" && CUpdateClientPartner::__IsGzipInstalled())
$strServerOutput = @gzuncompress($strServerOutput);
if (mb_substr($strServerOutput, 0, mb_strlen("")) != "")
{
CUpdateClientPartner::AddMessage2Log(mb_substr($strServerOutput, 0, 100), "UPSD02");
$strError_tmp .= "[UPSD02] ".GetMessage("SUPP_PSD_BAD_RESPONSE").". ";
}
}
//CUpdateClientPartner::AddMessage2Log($strServerOutput, "!3!");
//echo "strServerOutput:
".htmlspecialcharsbx($strServerOutput)."
";
if ($strError_tmp == '')
{
// $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 ($strError_tmp == '')
{
if (isset($arRes["DATA"]["#"]["RESPONSE"]))
{
$CRCCode = $arRes["DATA"]["#"]["RESPONSE"][0]["@"]["CRC_CODE"];
if ($CRCCode <> '')
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 ($strError_tmp <> '')
{
CUpdateClientPartner::AddMessage2Log($strError_tmp, "CUPSD");
$strError .= $strError_tmp;
return false;
}
else
return true;
}