Proxy support added to Wernis RSS feed
[mailer.git] / inc / rdf.class.php
index f0efb0c91aabb1fb786df278db77f66a30eebafd..350976fde67b23b6b3cab9bb9b5c021b46dc4706 100644 (file)
@@ -447,16 +447,16 @@ class fase4_rdf {
     * 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))) {
@@ -619,16 +619,16 @@ class fase4_rdf {
             $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()
 
@@ -686,9 +686,9 @@ class fase4_rdf {
     */
     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"])))
           {
@@ -850,6 +850,27 @@ class fase4_rdf {
         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 />.
     *
@@ -890,17 +911,17 @@ class fase4_rdf {
         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;
                         }
                 }
         }
@@ -1140,7 +1161,8 @@ class fase4_rdf {
     {
         $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")  {
                 if(!@unlink($dir->path.$file)) {
                     $this->_throw_exception(
                     "Unable to unlink ".$dir->path.$file