Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*This file is part of ActiveLink PHP SYS Package (www.active-link.com).Copyright (c) 2002-2004 by Zurab DavitianiYou can contact the author of this software via E-mail athattrick@mailcan.comActiveLink PHP SYS Package is free software; you can redistribute it and/or modifyit under the terms of the GNU Lesser General Public License as published bythe Free Software Foundation; either version 2.1 of the License, or(at your option) any later version.ActiveLink PHP SYS Package is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See theGNU Lesser General Public License for more details.You should have received a copy of the GNU Lesser General Public Licensealong with ActiveLink PHP SYS Package; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*//*** File class provides a wrapper around filesystem file functions* @class File* @package org.active-link.sys* @author Zurab Davitiani* @version 0.4.0*/class File {// protected variablesvar $filename;var $fileOpenMode;var $fileOpenModeRead;var $fileOpenModeReadWrite;var $fileOpenModeWrite;var $fileOpenModeWriteRead;var $fileOpenModeAppend;var $fileOpenModeAppendRead;var $connected;var $handleID;/*** Constructor accepts filename (optional) and open mode (optional, default "r")* If filename is specified, it is opened with the supplied open mode* @method File* @param optional string filename* @param optional string fileOpenMode*/function File($filename = "", $fileOpenMode = "r") {$success = true;$this->filename = $filename;$this->fileOpenMode = $fileOpenMode;$this->fileOpenModeRead = "r";$this->fileOpenModeReadWrite = "r+";$this->fileOpenModeWrite = "w";$this->fileOpenModeWriteRead = "w+";$this->fileOpenModeAppend = "a";$this->fileOpenModeAppendRead = "a+";$this->connected = false;$this->handleID = false;if($this->filename != "")$success = $this->open($this->filename, $this->fileOpenMode);return $success;}/*** Closes open file handle, resets filename, and file open mode to defaults* @method close* @returns true if successful, false otherwise*/function close() {$success = fclose($this->handleID);if($success) {$this->filename = "";$this->fileOpenMode = "r";$this->connected = false;$this->handleID = false;}return $success;}/*** Returns file contents, optionally specify chunk size number of bytes to use per chunk read (default 8192)* @method getContents* @param optional int chunkSize* @returns string file contents if successful, false otherwise*/function getContents($chunkSize = 8192) {if($this->connected) {$fileContents = "";do {$data = fread($this->handleID, $chunkSize);if (strlen($data) == 0) {break;}$fileContents .= $data;} while(true);return $fileContents;}elsereturn false;}/*** Returns file contents as an array of lines* @method getContentsArray* @returns array file contents lines*/function getContentsArray() {$fileContentsArray = file($this->filename);return $fileContentsArray;}/*** Opens a file with the supplied open mode* @method open* @param string filename* @param optional string fileOpenMode* @returns true if successful, false otherwise*/function open($filename, $mode = "r") {$success = false;if(!$this->connected) {$this->handleID = @fopen($filename, $mode);if($this->handleID !== false) {$this->filename = $filename;$this->fileOpenMode = $mode;$this->connected = true;$success = true;}}return $success;}/*** Writes supplied string content to already open file handle* @method write* @param string strContent* @returns number of bytes written if successful, false otherwise*/function write($strContent) {$bytesWritten = fwrite($this->handleID, $strContent, strlen($strContent));return $bytesWritten;}}?>