sbergmann               Fri Apr  6 01:28:20 2001 EDT

  Added files:                 
    /php4/pear/Cache    URL.php 
  Log:
  Initial checkin of URL Cache.
  

Index: php4/pear/Cache/URL.php
+++ php4/pear/Cache/URL.php
<?php
/**
* URL_Cache
* 
* Purpose:
* 
*   Caching the contents of a remote URL.
* 
* Example:
* 
*     require_once "Cache/URL.php";
*
*     $FUNCTION_CACHE_CONTAINER = "file";
*     $FUNCTION_CACHE_CONTAINER_OPTIONS = array(
*         "cache_dir" => "/tmp/",
*         "filename_prefix" => "cache_");
*
*     $data = get_cached_url("http://www.test.com/");
* 
* @author       Sebastian Bergmann <[EMAIL PROTECTED]>
* @module       URL_Cache
* @modulegroup  URL_Cache
* @package      Cache
* @version      $Revision: 1.1 $
* @access       public
*/

// +----------------------------------------------------------------------+
// | PHP version 4.0                                                      |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group             |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at                           |
// | http://www.php.net/license/2_02.txt.                                 |
// | If you did not receive a copy of the PHP license and are unable to   |
// | obtain it through the world-wide-web, please send a note to          |
// | [EMAIL PROTECTED] so we can mail you a copy immediately.               |
// +----------------------------------------------------------------------+
// | Authors: Sebastian Bergmann <[EMAIL PROTECTED]>               |
// +----------------------------------------------------------------------+
//
// $Id: URL.php,v 1.1 2001/04/06 08:28:20 sbergmann Exp $

require_once 'Cache.php';

/**
* Caches the contents of a remote URL.
*
* @param  string $url
* @param  mixed  $expires
* @return string $data
* @access public
*/
function get_cached_url($url, $expires = 0) {
    global $FUNCTION_CACHE_CONTAINER, $FUNCTION_CACHE_CONTAINER_OPTIONS;
    static $cache;

    // create Cache object, if needed
    if (!is_object($cache)) {
        $cache = new Cache($FUNCTION_CACHE_CONTAINER, 
$FUNCTION_CACHE_CONTAINER_OPTIONS);
    }

    // generate Cache ID
    $id = md5($url);

    // query Cache
    $data = $cache->get($id);

    // Cache miss: Retrieve document at given URL and store it
    if ($data == NULL) {
        $fp = @fopen($url, "r");

        if($fp) {
          $data = fread($fp, 65536);
          fclose($fp);
          $cache->save($id, $data, $expires);
          
        }
    }

    return $data;
}
?>



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to