• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/php_parser.php
  • Класс: PHPParser
  • Вызов: PHPParser::ReturnPHPStr
static function ReturnPHPStr($arVals, $arParams)
{
	$res = "";
	$un = md5(uniqid(""));
	$i=0;
	foreach($arVals as $key=>$val)
	{
		$i++;
		$comm = ($arParams[$key]["NAME"] <> ''?"$un|$i|// ".$arParams[$key]["NAME"]:"");
		$res .= "rnt"".$key.""t=>t";
		if(is_array($val) && count($val)>1)
			$res .= "array(".$comm."rn";

		if(is_array($val) && count($val)>1)
		{
			$zn = '';
			foreach($val as $p)
			{
				if($zn!='') $zn.=",rn";
				$zn .= "ttttt".PHPParser::PreparePHP($p);
			}
			$res .= $zn."rntttt),";
		}
		elseif(is_array($val))
		{
			$res .= "array(".PHPParser::PreparePHP($val[0])."),".$comm;
		}
		else
			$res .= PHPParser::PreparePHP($val).",".$comm;
	}

	$max = 0;
	$lngth = array();
	for($j=1; $j<=$i; $j++)
	{
		$p = mb_strpos($res, "$un|$j|");
		$pn = mb_strrpos(mb_substr($res, 0, $p), "n");
		$l = ($p-$pn);
		$lngth[$j] = $l;
		if($max<$l)
			$max = $l;
	}

	for($j=1; $j<=$i; $j++)
		$res = str_replace($un."|$j|", str_repeat("t", intval(($max-$lngth[$j]+7)/8)), $res);

	return trim($res, " t,rn");
}