154 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			154 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /*
 | |
| 	This file is part of ActiveLink PHP SYS Package (www.active-link.com).
 | |
| 	Copyright (c) 2002-2004 by Zurab Davitiani
 | |
| 
 | |
| 	You can contact the author of this software via E-mail at
 | |
| 	hattrick@mailcan.com
 | |
| 
 | |
| 	ActiveLink PHP SYS Package is free software; you can redistribute it and/or modify
 | |
| 	it under the terms of the GNU Lesser General Public License as published by
 | |
| 	the 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 of
 | |
| 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| 	GNU Lesser General Public License for more details.
 | |
| 
 | |
| 	You should have received a copy of the GNU Lesser General Public License
 | |
| 	along with ActiveLink PHP SYS Package; if not, write to the Free Software
 | |
| 	Foundation, 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 variables
 | |
| 	var $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;
 | |
| 		}
 | |
| 		else
 | |
| 			return 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;
 | |
| 	}
 | |
| 
 | |
| }
 | |
| 
 | |
| ?>
 |