правильно ли сделан запрос?
И я так понял это 100% защита от sql инъекций?
function transform($str) {
$prepared = str_replace(";", ",", $str);
$elements = explode(",", $prepared);
$transformedElements = array_map(function($element) {
return strpos($element, ":") === false ? $element : explode(":", $element)[1];
}, $elements);
return implode(",", $transformedElements);
}
$str = "value-1:test;2:test_2,test3";
$transformed = transform($str);
var_dump($transformed);
$str = "value-1:test;2:test_2,test3";
$transformed = implode(",", array_map(function($element) {
return strpos($element, ":") === false ? $element : explode(":", $element)[1];
}, explode(",", str_replace(";", ",", $str))));
var_dump($transformed);
&age='$_POST['age'];
<?php if ($arSection["DEPTH_LEVEL"] == 1):?>
<li class="bxr-bg-hover-flat <?php if(substr_count($dirReal, $arSection["SECTION_PAGE_URL"])) {echo "active";} ?>">
<a href="<?=$arSection["SECTION_PAGE_URL"]?>">
<?=$arSection["NAME"]?>
</a>
</li>
<?php else: ?>
<li class="bxr-bg-hover-flat from <?= substr_count($dirReal, $arSection["SECTION_PAGE_URL"])>=2 ? "show" : "hide" ?>">
<a href="<?=$arSection["SECTION_PAGE_URL"]?>">
<?=$arSection["NAME"]?>
</a>
</li>
<?php endif ?>
SELECT
`user`.*,
`project`.`name` as 'project_name'
FROM
`user`
JOIN `project` ON (`project`.`id`=`user`.`project_id`)
WHERE
`user_id`='1' -- здесь подставить правильный id
SELECT
`task`.*
FROM
`task`
WHERE
`project_id`='1' -- здесь подставить правильный project_id, полученный в предыдущем запросе.
Проблема в том что getShortName(); выдаёт имя в массиве
if("RegistrationData" == $type->getShortName()) {
Как должна выглядеть функция, чтоб рекурсия происходила внутри функции, а не на саму функцию.
function parents($tree, $childKey) {
$parents = [];
$endOfTree = false;
$minLevel = 1;
$currentLevel = 1;
$parentBranches = [];
$branch = $tree;
$branchKey = key($branch);
$branchValue = current($branch);
while (!$endOfTree) {
// Обработка текущего элемента
if (strpos($childKey, $branchKey . ".") === 0 && $branchKey !== $childKey) {
$parents[] = (string)$branchKey;
}
// Переключение ветки на внутренни уровень, если он есть
if (is_array($branchValue) && !empty($branchValue)) {
$currentLevel++;
$parentBranches[] = $branch;
$branch = $branchValue;
$branchKey = key($branch);
$branchValue = current($branchValue);
continue;
}
// Переключение на следующий элемент
$branchValue = next($branch);
$branchKey = key($branch);
// В случае, если следующего элемента нет, возврат на уровень выше или завершение цикла
if ($branchValue === false) {
$branch = array_pop($parentBranches);
$currentLevel--;
// Возврат на уровень выше, если это возможно
if ($currentLevel >= $minLevel) {
$branchValue = next($branch);
$branchKey = key($branch);
// Завершение цикла, если уровень минимальный
} else {
$endOfTree = true;
}
}
}
// Смена направления массива и возвращение результата
return array_reverse($parents);
}
// Проверка
parents($tree, '1.3.2.2');
/*
array(3) {
[0]=>
string(5) "1.3.2"
[1]=>
string(3) "1.3"
[2]=>
string(1) "1"
}
*/