//Функция удаляет пустые строки в начале и конце кода
function trim_code($code)
{
$code = explode("\n", $code);
$code_count = count($code);
if($code_count > 0)
{
//Удаляем пробелы и пустые строки в начале кода
$i = 0;
while(isset($code[$i]) AND trim($code[$i])=='')
{
unset($code[$i]);
$i++;
}
//Теперь удаляем в конце =)
$i = 0;
while(isset($code[$code_count-1-$i]) AND trim($code[$code_count-1-$i])=='')
{
unset($code[$code_count-1-$i]);
$i++;
}
}
return implode("\n", $code);
}
// Функция удаляет лишние пробелы перед строками не нарушая форматирование
function check_space($code)
{
$code = explode("\n", $code);
$spaces = array();
$code_count = count($code);
if($code_count > 0)
{
foreach($code AS $key=>$value)
{
if(trim($value) != '')
{
$letters = str_split($value);
$count = count($letters);
$i = 0;
while($letters[$i] == ' ')
{
$i++;
}
$spaces[] = $i;
}
else
$code[$key] = trim($value);
}
if(count($spaces)>0)
{
$min_sp = min($spaces);
if($min_sp > 0)
{
$new_code = array();
foreach($code AS $value)
{
if($value)
$new_code[] = mb_substr($value, $min_sp);
else
$new_code[] = $value;
}
$code = $new_code;
}
}
}
return implode("\n", $code);
}
function check_code()
{
$code = str_replace("\r\n", "\n", $code);
$code = trim_code($code);
$code = check_space($code);
return $code;
}