Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
/* vim: set expandtab tabstop=4 shiftwidth=4: */
3
// +----------------------------------------------------------------------+
4
// | PHP Version 4                                                        |
5
// +----------------------------------------------------------------------+
6
// | Copyright (c) 1997-2002 The PHP Group                                |
7
// +----------------------------------------------------------------------+
8
// | This source file is subject to version 2.02 of the PHP license,      |
9
// | that is bundled with this package in the file LICENSE, and is        |
10
// | available at through the world-wide-web at                           |
11
// | http://www.php.net/license/2_02.txt.                                 |
12
// | If you did not receive a copy of the PHP license and are unable to   |
13
// | obtain it through the world-wide-web, please send a note to          |
14
// | license@php.net so we can mail you a copy immediately.               |
15
// +----------------------------------------------------------------------+
16
// | Author: Xavier Noguer <xnoguer@php.net>                              |
17
// | Based on OLE::Storage_Lite by Kawai, Takanori                        |
18
// +----------------------------------------------------------------------+
19
//
20
// $Id: File.php,v 1.8 2003/12/12 21:10:10 xnoguer Exp $
21
 
22
 
23
require_once ('OLE/PPS.php');
24
 
25
/**
26
* Class for creating File PPS's for OLE containers
27
*
28
* @author   Xavier Noguer <xnoguer@php.net>
29
* @category Structures
30
* @package  OLE
31
*/
32
class OLE_PPS_File extends OLE_PPS
33
{
34
    /**
35
    * The temporary dir for storing the OLE file
36
    * @var string
37
    */
38
    var $_tmp_dir;
39
 
40
    /**
41
    * The constructor
42
    *
43
    * @access public
44
    * @param string $name The name of the file (in Unicode)
45
    * @see OLE::Asc2Ucs()
46
    */
47
    function OLE_PPS_File($name)
48
    {
49
        $this->_tmp_dir = '';
50
        $this->OLE_PPS(
51
            null,
52
            $name,
53
            OLE_PPS_TYPE_FILE,
54
            null,
55
            null,
56
            null,
57
            null,
58
            null,
59
            '',
60
            array());
61
    }
62
 
63
    /**
64
    * Sets the temp dir used for storing the OLE file
65
    *
66
    * @access public
67
    * @param string $dir The dir to be used as temp dir
68
    * @return true if given dir is valid, false otherwise
69
    */
70
    function setTempDir($dir)
71
    {
72
        if (is_dir($dir)) {
73
            $this->_tmp_dir = $dir;
74
            return true;
75
        }
76
        return false;
77
    }
78
 
79
    /**
80
    * Initialization method. Has to be called right after OLE_PPS_File().
81
    *
82
    * @access public
83
    * @return mixed true on success. PEAR_Error on failure
84
    */
85
    function init()
86
    {
87
        $this->_tmp_filename = tempnam($this->_tmp_dir, "OLE_PPS_File");
88
        $fh = @fopen($this->_tmp_filename, "w+b");
89
        if ($fh == false) {
90
            return $this->raiseError("Can't create temporary file");
91
        }
92
        $this->_PPS_FILE = $fh;
93
        if ($this->_PPS_FILE) {
94
            fseek($this->_PPS_FILE, 0);
95
        }
96
    }
97
 
98
    /**
99
    * Append data to PPS
100
    *
101
    * @access public
102
    * @param string $data The data to append
103
    */
104
    function append($data)
105
    {
106
        if ($this->_PPS_FILE) {
107
            fwrite($this->_PPS_FILE, $data);
108
        }
109
        else {
110
            $this->_data .= $data;
111
        }
112
    }
113
}
114
?>