| 
<?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;
 }
 }
 }
 
 |