Overview

Packages

  • None
  • SimplePie

Classes

  • SimplePie
  • SimplePie_Author
  • SimplePie_Autoloader
  • SimplePie_Cache
  • SimplePie_Cache_DB
  • SimplePie_Cache_File
  • SimplePie_Cache_Memcache
  • SimplePie_Cache_MySQL
  • SimplePie_Caption
  • SimplePie_Category
  • SimplePie_Content_Type_Sniffer
  • SimplePie_Copyright
  • SimplePie_Core
  • SimplePie_Credit
  • SimplePie_Decode_HTML_Entities
  • SimplePie_Enclosure
  • SimplePie_File
  • SimplePie_gzdecode
  • SimplePie_HTTP_Parser
  • SimplePie_IRI
  • SimplePie_Item
  • SimplePie_Locator
  • SimplePie_Misc
  • SimplePie_Net_IPv6
  • SimplePie_Parse_Date
  • SimplePie_Parser
  • SimplePie_Rating
  • SimplePie_Registry
  • SimplePie_Restriction
  • SimplePie_Sanitize
  • SimplePie_Source
  • SimplePie_XML_Declaration_Parser

Interfaces

  • SimplePie_Cache_Base
  • Overview
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo
  1: <?php
  2: /**
  3:  * SimplePie
  4:  *
  5:  * A PHP-Based RSS and Atom Feed Framework.
  6:  * Takes the hard work out of managing a complete RSS/Atom solution.
  7:  *
  8:  * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
  9:  * All rights reserved.
 10:  *
 11:  * Redistribution and use in source and binary forms, with or without modification, are
 12:  * permitted provided that the following conditions are met:
 13:  *
 14:  *  * Redistributions of source code must retain the above copyright notice, this list of
 15:  *    conditions and the following disclaimer.
 16:  *
 17:  *  * Redistributions in binary form must reproduce the above copyright notice, this list
 18:  *    of conditions and the following disclaimer in the documentation and/or other materials
 19:  *    provided with the distribution.
 20:  *
 21:  *  * Neither the name of the SimplePie Team nor the names of its contributors may be used
 22:  *    to endorse or promote products derived from this software without specific prior
 23:  *    written permission.
 24:  *
 25:  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
 26:  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 27:  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
 28:  * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 29:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 30:  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 31:  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 32:  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 33:  * POSSIBILITY OF SUCH DAMAGE.
 34:  *
 35:  * @package SimplePie
 36:  * @version 1.3-dev
 37:  * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
 38:  * @author Ryan Parman
 39:  * @author Geoffrey Sneddon
 40:  * @author Ryan McCue
 41:  * @link http://simplepie.org/ SimplePie
 42:  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
 43:  */
 44: 
 45: /**
 46:  * Caches data to the filesystem
 47:  *
 48:  * @package SimplePie
 49:  */
 50: class SimplePie_Cache_File implements SimplePie_Cache_Base
 51: {
 52:     /**
 53:      * Location string
 54:      *
 55:      * @see SimplePie::$cache_location
 56:      * @var string
 57:      */
 58:     protected $location;
 59: 
 60:     /**
 61:      * Filename
 62:      *
 63:      * @var string
 64:      */
 65:     protected $filename;
 66: 
 67:     /**
 68:      * File extension
 69:      *
 70:      * @var string
 71:      */
 72:     protected $extension;
 73: 
 74:     /**
 75:      * File path
 76:      *
 77:      * @var string
 78:      */
 79:     protected $name;
 80: 
 81:     /**
 82:      * Create a new cache object
 83:      *
 84:      * @param string $location Location string (from SimplePie::$cache_location)
 85:      * @param string $name Unique ID for the cache
 86:      * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
 87:      */
 88:     public function __construct($location, $name, $type)
 89:     {
 90:         $this->location = $location;
 91:         $this->filename = $name;
 92:         $this->extension = $type;
 93:         $this->name = "$this->location/$this->filename.$this->extension";
 94:     }
 95: 
 96:     /**
 97:      * Save data to the cache
 98:      *
 99:      * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
100:      * @return bool Successfulness
101:      */
102:     public function save($data)
103:     {
104:         if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
105:         {
106:             if ($data instanceof SimplePie)
107:             {
108:                 $data = $data->data;
109:             }
110: 
111:             $data = serialize($data);
112:             return (bool) file_put_contents($this->name, $data);
113:         }
114:         return false;
115:     }
116: 
117:     /**
118:      * Retrieve the data saved to the cache
119:      *
120:      * @return array Data for SimplePie::$data
121:      */
122:     public function load()
123:     {
124:         if (file_exists($this->name) && is_readable($this->name))
125:         {
126:             return unserialize(file_get_contents($this->name));
127:         }
128:         return false;
129:     }
130: 
131:     /**
132:      * Retrieve the last modified time for the cache
133:      *
134:      * @return int Timestamp
135:      */
136:     public function mtime()
137:     {
138:         if (file_exists($this->name))
139:         {
140:             return filemtime($this->name);
141:         }
142:         return false;
143:     }
144: 
145:     /**
146:      * Set the last modified time to the current time
147:      *
148:      * @return bool Success status
149:      */
150:     public function touch()
151:     {
152:         if (file_exists($this->name))
153:         {
154:             return touch($this->name);
155:         }
156:         return false;
157:     }
158: 
159:     /**
160:      * Remove the cache
161:      *
162:      * @return bool Success status
163:      */
164:     public function unlink()
165:     {
166:         if (file_exists($this->name))
167:         {
168:             return unlink($this->name);
169:         }
170:         return false;
171:     }
172: }
173: 
SimplePie Documentation API documentation generated by ApiGen 2.4.0