for ($i = 0; $i < $num_at; $i = $i + 2) { if ($clean_post[$at_keys[$i]] != '') { $j = $i + 1; $nodes['@attributes'][$clean_post[$at_keys[$i]]] = $clean_post[$at_keys[$j]]; unset($clean_post[$at_keys[$i]]); } } $cont = 1; foreach ($nodes_keys as $k => $v) { if (preg_match("/^clone/", $v) == false) { $child_node = getChild($child, $v); $nodes[$cont - 1][$child_node['node']] = set_new_lk($child_node['tree'], $child_node['tree']['@attributes'][$_level_key_name], $__level_key . "_" . $cont); } else { $key = preg_replace("/clone###/", "", $v); $child_node = getChild($child, $key); $nodes[$cont - 1][$child_node['node']] = set_new_lk($child_node['tree'], $child_node['tree']['@attributes'][$_level_key_name], $__level_key . "_" . $cont); } $cont++; } $ok = eval("\$tree{$branch}=\$nodes;"); break; } if ($ok === false) { echo "2###" . _("Failure to update XML File") . " (2)"; $error = true; } else { $xml = new xml($_level_key_name); $output = $xml->array2xml($tree); $output = formatOutput($output, $_level_key_name); $output = utf8_decode($output); if (@file_put_contents($path, $output, LOCK_EX) === false) {
function set_new_lk($tree, $lk, $new_lk) { $_level_key_name = $_SESSION['_level_key_name']; $pattern = "/{$lk}/"; if (is_array($tree)) { foreach ($tree as $k => $v) { if ($k === '@attributes') { $tree[$k][$_level_key_name] = preg_replace($pattern, $new_lk, $v[$_level_key_name]); } else { $tree[$k] = set_new_lk($tree[$k], $lk, $new_lk); } } } return $tree; }