Не плохая функция для проверки правильности открытия и закрытия скобок.
PHP | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| function checkBrackets($sString = null)
{
//первая проверка на то, что данные были переданы, и строка не пустая
//в этом варианте возвращаем true, так как проблем с дужками нету :)
if(is_null($sString) || $sString == '')
return true;
//инициализируем скобки которые будем проверять
$aSkobki = array('(', ')', '[', ']');
//получаем длину строки для её обхода.
//а так же чтобы не проверять прямо в цикле. Дольше будет выполняться.
$iLength = strlen($sString);
//инициализируем переменную для строки скобок
$sSkobki = '';
for($i = 0; $i < $iLength; $i++)
{
if(in_array($sString[$i], $aSkobki))
$sSkobki .= $sString[$i];
}
//чистим память
unset($sString);
//получаем длину строки чтобы обойти её всю и очистить.
//такой вариант не очень хорош, но по условии нужна была одна функция.
//если бы можно несколько функций, то создал бы рекурсивную функцию для чистки строки
$iLength = strlen($sSkobki);
//чистим строку
for($i = 0; $i < $iLength; $i++)
$sSkobki = str_replace(array('[]', '()'), array('', ''), $sSkobki);
//возвращаем результат
return strlen($sSkobki) == 0
} |
|
|