PHP Classes

File: ClassFileManipulation.php

Recommend this page to a friend!
  Classes of Boris Penck   FileManipulation   ClassFileManipulation.php   Download  
File: ClassFileManipulation.php
Role: ???
Content type: text/plain
Description: PHP Class
Class: FileManipulation
Author: By
Last change:
Date: 22 years ago
Size: 7,313 bytes
 

Contents

Class file image Download
<?php ###------------------------------------------------------------------ /* * Text File Manipulation Class * Author: Boris Penck <boris@gamate.com> * Date: 2001-06-24 */ class FileMan { var $basefile = ""; var $filearray = array(); var $totallines = 0; /* * setFile(string filename) * set filename for further use */ function setFile($file="") { if($file!="" && file_exists($file)) { $this->basefile = $file; $this->filearray = $this->readFileToArray(); foreach($this->filearray as $key => $value) { $this->totallines++; } } } // Do not call ! Internal function function outputError($errorNo) { switch($errorNo) { case 1: echo '<b>Error</b>: No file selected. Define your file with $class->setFile(file) !'; break; case 2: echo '<b>Error</b>: Selected File not found or bad file permissions !'; break; case 3: echo '<b>Error</b>: File not modified or given line not found'; break; default: echo '<b>Error</b>: Unkown error in Class FileMan'; } } // Do not call ! Internal function function readFileToArray() { if($this->basefile!="") { $tempArray = file($this->basefile); return $tempArray; } else { $this->outputError(1); } } ###--------------------------------------------------------------- /* * Callable functions * * below this, there all all callable function to manipulate a file * */ ###--------------------------------------------------------------- /* * readEntire() * returns an array containing the complete file, each arrayelement * contains one line of the file */ function readEntire() { if($this->basefile!="") { return $this->filearray; } else { $this->outputError(1); } } /* * readFirstX(int amount of lines) * returns an array containing the first X Lines */ function readFirstX($amountOfLines) { if($this->basefile!="") { $tempArray = array(); for($line=0;$line<=($amountOfLines-1);$line++) { $tempArray[] = $this->filearray[$line]; } return $tempArray; } else { $this->outputError(1); } } /* * readLastX(int amount of lines) * returns an array contaiing the last X lines */ function readLastX($amountOfLines) { if($this->basefile!="") { $tempArray = array(); $startLine = $this->totallines - $amountOfLines; $i=0; foreach($this->filearray as $key => $value) { if($i>=$startLine) { $tempArray[] = $value; } $i++; } return $tempArray; } else { $this->outputError(1); } } /* * writeEnd(string string) * appends a line to the file */ function writeEnd($writeStr) { if($this->basefile!="") { $fp = fopen($this->basefile,"a"); if($fp) { if(!ereg("\n$",$writeStr)) { $writeStr .= "\n"; } fputs($fp,$writeStr); fclose($fp); return true; } else { $this->outputError(2); } } else { $this->outputError(1); } } /* * writebegin(string string) * prepends a line to the file */ function writeBegin($writeStr) { if($this->basefile!="") { $fp = @fopen($this->basefile,"w"); if($fp) { if(!ereg("\n$",$writeStr)) { $writeStr .= "\n"; } fputs($fp,$writeStr); foreach($this->filearray as $lNo => $lineValue) { fputs($fp,$lineValue); } fclose($fp); return true; } else { $this->outputError(2); } } else { $this->outputError(1); } } /* * delLineNo(int number of line) * delete a line is the file, lines begin with 1 (not 0!) */ function delLineNo($lineNo) { if($this->basefile!="") { $fp = @fopen($this->basefile,"w"); if($fp) { foreach($this->filearray as $lNo => $lineValue) { if($lNo != ($lineNo-1)) { fputs($fp,$lineValue); } else { $modificated = 1; } } fclose($fp); if($modificated==1) { return true; } else { $this->outputError(3); } } else { $this->outputError(2); } } else { $this->outputError(1); } } /* * writeAfterLine(int line number, string string) * insert a line after a given line number, lines begin with 1 */ function writeAfterLine($lineNo,$writeStr) { if($this->basefile!="") { $fp = @fopen($this->basefile,"w"); if($fp) { if(!ereg("\n$",$writeStr)) { $writeStr .= "\n"; } foreach($this->filearray as $lNo => $lineValue) { if($lNo==($lineNo-1)) { fputs($fp,$lineValue); fputs($fp,$writeStr); $modificated = 1; } else { fputs($fp,$lineValue); } } fclose($fp); if($modificated==1) { return true; } else { $this->outputError(3); } } else { $this->outputError(2); } } else { $this->outputError(1); } } /* * replaceLine(int number of line, string string) * replaces a line with the given sting(line), lines begin with 1 */ function replaceLine($lineNo,$replaceStr) { if($this->basefile!="") { $fp = @fopen($this->basefile,"w"); if($fp) { if(!ereg("\n$",$replaceStr)) { $replaceStr .= "\n"; } foreach($this->filearray as $lNo => $lineValue) { if($lNo==($lineNo-1)) { fputs($fp,$replaceStr); $modificated = 1; } else { fputs($fp,$lineValue); } } fclose($fp); if($modificated==1) { return true; } else { $this->outputError(3); } } else { $this->outputError(2); } } else { $this->outputError(1); } } /* * getLine(int number of line) * returns a string containing line X of the file, lines begin with 0! */ function getLine($lineNo) { if($this->basefile!="") { return $this->filearray[$lineNo]; } else { $this->outputError(1); } } /* * getLastLine(int number of line) * returns a string containing the last line of the file */ function getLastLine() { if($this->basefile!="") { return $this->filearray[$this->totallines]; } else { $this->outputError(1); } } /* * getFirstLine(int number of line) * returns a string containing the first line of the file */ function getFirstLine() { if($this->basefile!="") { return $this->filearray[0]; } else { $this->outputError(1); } } /* * getRandomLine() * returns a string containing a random line of the file */ function getRandomLine() { if($this->basefile!="") { $randInt = rand(0,$this->totallines); return $this->filearray[$randInt]; } else { $this->outputError(1); } } /* * searchInLine(string string) * searches each line for a string or regular expression and * returns an array of $linenumber => $linecontent */ function searchInLine($sStr="") { $tempArray = array(); foreach($filearray as $lineNo => $lineValue) { if(eregi($sStr,$lineValue)) { $tempArray[$lineNo] = $lineValue; $found = 1; } } if($found==1) { return $tempArray; } else { return false; } } } ?>