- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/db/oraclesqlhelper.php
- Класс: BitrixMainDBOracleSqlHelper
- Вызов: OracleSqlHelper::forSql
function forSql($value, $maxLength = 0)
{
if ($maxLength <= 0 || $maxLength > 2000)
$maxLength = 2000;
$value = mb_substr($value, 0, $maxLength);
if (BitrixMainApplication::isUtfMode())
{
// From http://w3.org/International/questions/qa-forms-utf-8.html
// This one can crash php with segmentation fault on large input data (over 20K)
// https://bugs.php.net/bug.php?id=60423
if (preg_match_all('%(
[x00-x7E] # ASCII
|[xC2-xDF][x80-xBF] # non-overlong 2-byte
|xE0[xA0-xBF][x80-xBF] # excluding overlongs
|[xE1-xECxEExEF][x80-xBF]{2} # straight 3-byte
|xED[x80-x9F][x80-xBF] # excluding surrogates
|xF0[x90-xBF][x80-xBF]{2} # planes 1-3
|[xF1-xF3][x80-xBF]{3} # planes 4-15
|xF4[x80-x8F][x80-xBF]{2} # plane 16
)+%x', $value, $match))
$value = implode(' ', $match[0]);
else
return ''; //There is no valid utf at all
}
return str_replace("'", "''", $value);
}