- Модуль: clouds
- Путь к файлу: ~/bitrix/modules/clouds/classes/general/security_service_s3.php
- Класс: CCloudSecurityService_AmazonS3
- Вызов: CCloudSecurityService_AmazonS3::PhpToJSObject
function PhpToJSObject($arData, $bWS = false, $bSkipTilda = false)
{
static $aSearch = array("r", "n");
if(is_array($arData))
{
if($arData == array_values($arData))
{
foreach($arData as $key => $value)
{
if(is_array($value))
{
$arData[$key] = $this->PhpToJSObject($value, $bWS, $bSkipTilda);
}
elseif(is_bool($value))
{
if($value === true)
$arData[$key] = 'true';
else
$arData[$key] = 'false';
}
else
{
if(preg_match("#['"\n\r<\\]#", $value))
$arData[$key] = '"'.CUtil::JSEscape($value).'"';
else
$arData[$key] = '"'.$value.'"';
}
}
return '['.implode(',', $arData).']';
}
$sWS = ','.($bWS ? "n" : '');
$res = ($bWS ? "n" : '').'{';
$first = true;
foreach($arData as $key => $value)
{
if ($bSkipTilda && mb_substr($key, 0, 1) == '~')
continue;
if($first)
$first = false;
else
$res .= $sWS;
if(preg_match("#['"\n\r<\\]#", $key))
$res .= '"'.str_replace($aSearch, '', CUtil::JSEscape($key)).'":';
else
$res .= '"'.$key.'":';
if(is_array($value))
{
$res .= $this->PhpToJSObject($value, $bWS, $bSkipTilda);
}
elseif(is_bool($value))
{
if($value === true)
$res .= 'true';
else
$res .= 'false';
}
else
{
if(preg_match("#['"\n\r<\\]#", $value))
$res .= '"'.CUtil::JSEscape($value).'"';
else
$res .= '"'.$value.'"';
}
}
$res .= ($bWS ? "n" : '').'}';
return $res;
}
elseif(is_bool($arData))
{
if($arData === true)
return 'true';
else
return 'false';
}
else
{
if(preg_match("#['"\n\r<\\]#", $arData))
return '"'.CUtil::JSEscape($arData).'"';
else
return '"'.$arData.'"';
}
}