<?php 
/* vim: set expandtab tabstop=4 shiftwidth=4: */ 
// +----------------------------------------------------------------------+ 
// | PHP Version 4                                                        | 
// +----------------------------------------------------------------------+ 
// | Copyright (c) 1997-2002 The PHP Group                                | 
// +----------------------------------------------------------------------+ 
// | This source file is subject to version 2.02 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.               | 
// +----------------------------------------------------------------------+ 
// | Author: Xavier Noguer <[email protected]>                              | 
// | Based on OLE::Storage_Lite by Kawai, Takanori                        | 
// +----------------------------------------------------------------------+ 
// 
// $Id: File.php,v 1.8 2003/12/12 21:10:10 xnoguer Exp $ 
 
 
require_once dirname ( __FILE__ ) . '/PPS.php'; 
 
/** 
* Class for creating File PPS's for OLE containers 
* 
* @author   Xavier Noguer <[email protected]> 
* @category Structures 
* @package  OLE 
*/ 
class OLE_PPS_File extends OLE_PPS 
{ 
    /** 
    * The temporary dir for storing the OLE file 
    * @var string 
    */ 
    var $_tmp_dir; 
 
    /** 
    * The constructor 
    * 
    * @access public 
    * @param string $name The name of the file (in Unicode) 
    * @see OLE::Asc2Ucs() 
    */ 
    function OLE_PPS_File($name) 
    { 
        $this->_tmp_dir = ''; 
        $this->OLE_PPS( 
            null, 
            $name, 
            OLE_PPS_TYPE_FILE, 
            null, 
            null, 
            null, 
            null, 
            null, 
            '', 
            array()); 
    } 
 
    /** 
    * Sets the temp dir used for storing the OLE file 
    * 
    * @access public 
    * @param string $dir The dir to be used as temp dir 
    * @return true if given dir is valid, false otherwise 
    */ 
    function setTempDir($dir) 
    { 
        if (is_dir($dir)) { 
            $this->_tmp_dir = $dir; 
            return true; 
        } 
        return false; 
    } 
 
    /** 
    * Initialization method. Has to be called right after OLE_PPS_File(). 
    * 
    * @access public 
    * @return mixed true on success. PEAR_Error on failure 
    */ 
    function init() 
    { 
        $this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_File"); 
        $fh = @fopen($this->_tmp_filename, "w+b"); 
        if ($fh == false) { 
            return $this->raiseError("Can't create temporary file"); 
        } 
        $this->_PPS_FILE = $fh; 
        if ($this->_PPS_FILE) { 
            fseek($this->_PPS_FILE, 0); 
        } 
    } 
 
    /** 
    * Append data to PPS 
    * 
    * @access public 
    * @param string $data The data to append 
    */ 
    function append($data) 
    { 
        if ($this->_PPS_FILE) { 
            fwrite($this->_PPS_FILE, $data); 
        } 
        else { 
            $this->_data .= $data; 
        } 
    } 
} 
 
 |