<?php
-/* $Id: rdf.class.php,v 1.40 2003/07/06 20:33:58 sts Exp $ */
+/* $Id$ */
//
// +----------------------------------------------------------------------+
* @package rss
* @copyright Copyright (c) 2001 fase4.com. All rights reserved.
* @author Stefan Saasen <s@fase4.com>
-* @version 1.7 ($Date: 2003/07/06 20:33:58 $) $Revision: 1.40 $
+* @author Roland Haeder <webmaster@mxchange.org>
+* @version 1.7 ($Date$Revision: 856 $
* @access public
*/
* This Method avtually parses the XML data.
*
* @access private
- * @author Stefan Saasen <s@fase4.com>
+ * @author Stefan Saasen <s@fase4.com>
* @param string $data RDF File XML Data
- * @see _clear_Items()
+ * @see _clear_Items()
*/
function _parse_xRDF( $data )
{
$this->_clear_Items();
$xml_parser = xml_parser_create();
xml_set_object($xml_parser,$this);
- xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
+ xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,0);
xml_set_element_handler($xml_parser, "_startElement", "_endElement");
xml_set_character_data_handler($xml_parser, "_parseData");
if (!xml_parse($xml_parser, trim($data))) {
$this->_parse_mode = "all";
}
- if( !isset( $this->_depth[$parser] ) ) {
- $this->_depth[$parser] = 0;
+ if( !isset( $this->_depth[$this->get_parser_id($parser)] ) ) {
+ $this->_depth[$this->get_parser_id($parser)] = 0;
}
- $this->_depth[$parser]++;
+ $this->_depth[$this->get_parser_id($parser)]++;
array_push($this->_tags, $name);
- if( !isset( $this->_cdepth[$parser] ) ) {
- $this->_cdepth[$parser] = 0;
+ if( !isset( $this->_cdepth[$this->get_parser_id($parser)] ) ) {
+ $this->_cdepth[$this->get_parser_id($parser)] = 0;
}
- $this->_cdepth[$parser]++;
+ $this->_cdepth[$this->get_parser_id($parser)]++;
array_push($this->_ctags, $name);
} // END _startElement()
*/
function _endElement($parser, $name) {
array_pop($this->_tags);
- $this->_depth[$parser]--;
+ $this->_depth[$this->get_parser_id($parser)]--;
array_pop($this->_ctags);
- $this->_cdepth[$parser]--;
+ $this->_cdepth[$this->get_parser_id($parser)]--;
$this->_item["link"] = trim($this->_item["link"]);
if ((!empty($this->_display_opt["refid"])) && (!empty($this->_item["link"])))
{
return $this->_array_textinput;
}
+ /**
+ * Getter for parser id from resource
+ *
+ * @access private
+ * @author Roland Haeder <webmaster@mxchange.org>
+ * @return int
+ */
+ function get_parser_id ($parser) {
+ // Default is zero
+ $id = 0;
+
+ // Is it a resource?
+ if (is_resource($parser)) {
+ // Cast the resource into id
+ $id = (int) $parser;
+ } // END - if
+
+ // Return the id
+ return $id;
+ }
+
/**
* This Method returns the data from <image />.
*
if ($clean) {
$text = preg_replace("/^\s+/", "", $text)."\n";
if($this->_parse_mode == "all") {
- if ( isset($this->_item[$this->_tags[$this->_depth[$parser]]]) &&
- $this->_item[$this->_tags[$this->_depth[$parser]]] ) {
- $this->_item[$this->_tags[$this->_depth[$parser]]] .= $text;
+ if ( isset($this->_item[$this->_tags[$this->_depth[$this->get_parser_id($parser)]]]) &&
+ $this->_item[$this->_tags[$this->_depth[$this->get_parser_id($parser)]]] ) {
+ $this->_item[$this->_tags[$this->_depth[$this->get_parser_id($parser)]]] .= $text;
} else {
- $this->_item[$this->_tags[$this->_depth[$parser]]] = $text;
+ $this->_item[$this->_tags[$this->_depth[$this->get_parser_id($parser)]]] = $text;
}
} elseif (isset($this->_parse_mode) && $this->_parse_mode == "channel") {
- if ( isset($this->_citem[$this->_ctags[$this->_cdepth[$parser]]]) ) {
- $this->_citem[$this->_ctags[$this->_cdepth[$parser]]] .= $text;
+ if ( isset($this->_citem[$this->_ctags[$this->_cdepth[$this->get_parser_id($parser)]]]) ) {
+ $this->_citem[$this->_ctags[$this->_cdepth[$this->get_parser_id($parser)]]] .= $text;
} else {
- $this->_citem[$this->_ctags[$this->_cdepth[$parser]]] = $text;
+ $this->_citem[$this->_ctags[$this->_cdepth[$this->get_parser_id($parser)]]] = $text;
}
}
}
{
$dir = dir($this->_cache_dir);
while($file=$dir->read()) {
- if($file!="." && $file!="..") {
+ // Exclude directories
+ if (is_file($dir->path.$file) && substr($file, -6, 6) != ".cache" && substr($file, -4, 4) != ".log") {
if(!@unlink($dir->path.$file)) {
- $this->_throw_exception(
- "Unable to unlink ".$dir->path.$file
- ."<br /><br />Exception at Line: ".__LINE__ );
+ $this->_throw_exception("Unable to unlink ".$dir->path.$file."<br />\n<br />\nException at Line: ".__LINE__ );
return false;
- }
- }
- }
+ } // END - if
+ } // END - if
+ } // END - while
$dir->close();
return true;
} // END clear_cache()
function _cut_string( $string, $str_len = "30" )
{
if(strlen(trim($string))>$str_len) {
- $string = substr( trim($string) , 0, $str_len - 4);
- $string .= " ...";
+ $string = substr( trim($string) , 0, $str_len - 4);
+ $string .= " ...";
}
return $string;
} // END _cut_string()
function _garbage_collection()
{
srand((double) microtime() * 1000000);
- if (rand(1, 100) <= $this->gc_probability) {
+ if (mt_rand(1, 100) <= $this->gc_probability) {
$dir = dir($this->_cache_dir);
while($file=$dir->read()) {
- if($file!="." AND $file!=".." AND filemtime($dir->path.$file) <= time() - $this->_refresh ) {
- @unlink($dir->path.$file);
- }
+ if (is_file($dir->path.$file) && substr($file, -6, 6) != ".cache" && substr($file, -4, 4) != ".log" && filemtime($dir->path.$file) <= time() - $this->_refresh ) {
+ @unlink($dir->path.$file);
+ } // END - if
}
$dir->close();
} // END if
fputs($fp, $request);
$reply = ""; $isContent = false; $dummy = "";
// Read reply
+ $i=0;
while ( !feof($fp) ) {
$read = trim(fgets($fp, 4096));
if (substr($read, 0, 5) == "<?xml" || $isContent) {