- Модуль: perfmon
- Путь к файлу: ~/bitrix/modules/perfmon/classes/general/sql_format.php
- Класс: CSqlFormat
- Вызов: CSqlFormat::format
public function format($tokens)
{
$result = "";
$skipWS = false;
foreach ($tokens as $i => $token)
{
if ($token[1] === ",")
{
$this->removeTrailingSpaces($result);
$result .= ",x3".str_repeat("x2", $token[2]);
$skipWS = true;
}
elseif (
$token[1] === "="
|| $token[1] === "-"
|| $token[1] === "+"
|| $token[1] === "*"
|| $token[1] === "/"
|| $token[1] === "<="
|| $token[1] === ">="
)
{
$this->removeTrailingSpaces($result);
$result .= "x1".$token[1]."x1";
$skipWS = true;
}
elseif (
$token[1] === "INNER"
|| $token[1] === "LEFT"
|| $token[1] === "SET"
|| $token[1] === "AND"
|| $token[1] === "OR"
)
{
$result .= "x3".str_repeat("x2", $token[2]).$token[1];
}
else
{
if ($skipWS)
{
$skipWS = false;
if ($token[0] === T_WHITESPACE)
continue;
}
elseif ($tokens[$i - 1][2] <> $token[2])
{
$result .= "x3".str_repeat("x2", $token[2]);
if ($token[0] === T_WHITESPACE)
continue;
}
if ($token[0] === T_WHITESPACE)
$result .= "x1";
else
$result .= $token[1];
}
}
$result = preg_replace_callback("/(
\([\x1\x2\x3_0-9A-Za-z.0-9_,]+\)
|\([\x1\x2\x3'x%0-9,]+\)
|\([\x1\x2\x3]*[a-zA-Z0-9_.]+[\x1\x2\x3]*=[\x1\x2\x3]*[a-zA-Z0-9_.']+[\x1\x2\x3]*\)
)/x", array($this, "removeSpaces"), $result);
$result = str_replace(array(
"x1",
"x2",
"x3",
), array(
$this->getSpace(),
$this->getTab(),
$this->getEol(),
), $result);
return $result;
}