Version: 1.3
Type: Class
Category: File Management
License: WebSite Only
Description: File functions For
Readig the string insdside the XMl File and
updating with new Tags for Recovery of an Object
<?php //Replace Session adodb_sess values with some session , //home dir refrers to the users folder //Any error Occurs Then Redirection To Errorpage.html User created page // Sorting Carried out in writing the user File in XML tags //XMLObject refers to XMl object created /* The FileTerms is used for performing File Handling Operations * Author : Saravana Babu * Date of Creation : 13-july-2001. * Date of Modification : 10-sept-2001. * Modified by : Saravana Babu */ class FileTerms { var $mFcontwr; //File to write the contents var $mContwr; //Write the contents to the file var $mStringwr; //String to perform the write operation var $mHandledir; //To Open the directory by getting the function parameter var $mFilename; //File name getting from the Handledir string var $mFilenamewr; //Open the file to perform write operation var $mFread; //Opening the files in array to read var $mFilearray =array(); //Read the Files in Array var $mFileext; //shows the file extension var $mReturncode; //returns the object var $mi; //To increment the files existing in the directory //Connection Flag var $mDBConnectionFlag='false'; var $mConnection; //For Back End Connection var $mUserRS; var $mLocationId; var $mFiledir; var $mFile; var $mdi; var $mDirarray=array(); //used to list the categories var $mc; //To increment the files in the category directory var $handle; //To open and read the files in the corresponding category /* * List The File From The Directory and Then Write The Content of Each File into The single XML * File Parameter Passed are Directory Name with path, XML Object, File Opened To write, and * Session Id Of The Browser */ // The Xml Object is built using the function where the open tags are intalized here function getUpper($ROpnfilename,$Sessionid) { $this->mi=1; $this->mFilenamewr = $ROpnfilename; $this->mFcontwr = fopen($this->mFilenamewr,"wb+"); $this->mStringwr = fwrite($this->mFcontwr,"<root>n"); $this->mStringwr=fwrite($this->mFcontwr,"<sessionID>".$Sessionid."</sessionID>n"); $pagerequest="<page_request>".$GLOBALS['page_request']."</page_request>n"; } //Function perform for the Lower Tags The XML Object function getLower() { $this->mStringwr = fwrite($this->mFcontwr,"</root>n"); fclose($this->mFcontwr); } // List for The Files in the directory and Stores in an array for further manipulation of // xml Object tags for the received xml file function getFileDir($rHandlestr,&$rXmlObj,$rOpnfilename,$Sessionid) { if($rHandlestr!='' && $this->mHandledir =@opendir($rHandlestr)) { $this->getUpper($rOpnfilename,$Sessionid); while (false!==($this->mFilename = readdir($this->mHandledir))) { $this->fileextension=substr($this->mFilename,strlen($this->mFilename)-4); if($this->fileextension==".xml") { $this->mFilearray[$this->mi] =$rHandlestr."/".$this->mFilename; $this->mi++; } } $this->noThemernoPer($this->mFilearray[1]); closedir($this->mHandledir); array_multisort($this->mFilearray,SORT_ASC,SORT_STRING); $dummyarr=array(); $dummyarr=$this->mFilearray; for($j=0;$j<$this->mi;$j=$j+2) { for($h=$j;$h<=$j+1;$h++) { $this->mFilearray[$h+1]=$dummyarr[$h]; } } for($j=1;$j<$this->mi;$j=$j+2) { $this->mStringwr=fwrite($this->mFcontwr,"<section ncount='$j'>n"); for($h=$j;$h<=$j+1;$h++) { if($this->mFilearray[$h]!="") { $this->mFread = fopen($this->mFilearray[$h],"rb+"); $this->mContwr=fread($this->mFread,filesize($this->mFilearray[$h])); $this->mStringwr = fwrite($this->mFcontwr,$this->mContwr); fclose($this->mFread); } } $this->mStringwr=fwrite($this->mFcontwr,"</section>n"); } $this->getLower(); $rXmlObj = xmldocfile($this->mFilenamewr); if(is_Object($rXmlObj)) {return $this->mReturncode = $rXmlObj;} else { header("location:ErrorPage.html"); exit; } } else { header("location:ErrorPage.html"); exit; } return $this->mReturncode; } /* Read a single File and Then Write The Content of the File into The single XML File Parameter * Passed are Read File Name, XML Object, File Opened To write, and Session Id Of The Browser */ function getFilenosection($RdFilename,&$rXmlObj,$rOpnfilename,$sessionid) { $this->validate($RdFilename); $this->getUpper($rOpnfilename,$sessionid); //File To Read and Transfer To content string and then write in a file $this->mFread = fopen($RdFilename,"rb"); $this->mContwr=fread($this->mFread,filesize($RdFilename)); $this->mStringwr = fwrite($this->mFcontwr,$this->mContwr); fclose($this->mFread); $this->getLower(); $rXmlObj = xmldocfile($this->mFilenamewr); if(is_Object($rXmlObj)) {return $this->mReturncode = $rXmlObj;} else { header("location:ErrorPage.html&dir=Invalid Tags&ministryid=".$GLOBALS['ministryid']); exit; } } // The Function Which is used to handle only a single file function getFile($RdFilename,&$rXmlObj,$rOpnfilename,$sessionid) { $this->validate($RdFilename); $this->getUpper($rOpnfilename,$sessionid); $this->mStringwr=fwrite($this->mFcontwr,"<section>n"); //File To Read and Transfer To content string and then write in a file $this->mFread = fopen($RdFilename,"rb"); $this->mContwr=fread($this->mFread,filesize($RdFilename)); $this->mStringwr = fwrite($this->mFcontwr,$this->mContwr); fclose($this->mFread); $this->mStringwr=fwrite($this->mFcontwr,"</section>n"); $this->getLower(); $rXmlObj = xmldocfile($this->mFilenamewr); if(is_Object($rXmlObj)) {return $this->mReturncode = $rXmlObj;} else { header("location:ErrorPage.html"); exit; } } /* * Read a single file and directory then write the content of the file to one xml file * Parameter passed are dir,filename,XML Obj,File open to write and session ID */ function getFilewithDir($rHandlestr,$RdFilename,&$rXmlObj,$rOpnfilename,$sessionid) { $this->validate($RdFilename); if($rHandlestr!='' && $this->mHandledir =@opendir($rHandlestr)) { $this->getUpper($rOpnfilename,$sessionid); while (false!=($this->mFilename = readdir($this->mHandledir))) { //To read the file Category wise for Modify Theme if($this->mFilename!='.' && $this->mFilename !='..') { if(is_dir($rHandlestr."/".$this->mFilename)) { //creating XML Tag to fetch the categories $this->mStringwr=fwrite($this->mFcontwr,"<filedir>"); $this->mDirarray[$this->mc]=$this->mFilename; $this->mStringwr=fwrite($this->mFcontwr,"<dircat>".$this->mDirarray[$this->mc]."</dircat>"); //$this->mc++; $this->mStringwr=fwrite($this->mFcontwr,"</filedir>"); //read the XML Files in the corresponding category if($GLOBALS['cat']!='' && $this->mFilename==$GLOBALS['cat']) { $this->handle=opendir($rHandlestr."/".$GLOBALS['cat']); while(false!=($this->mFile=readdir($this->handle))) { $this->fileextension=substr($this->mFile,strlen($this->mFile)-4); if($this->fileextension==".xml") { $this->mFilearray[$this->mi] =$rHandlestr."/".$this->mFilename."/".$this->mFile; $this->mi++; } } closedir($this->handle); } } } /*$this->fileextension=substr($this->mFilename,strlen($this->mFilename)-4); if($this->fileextension==".xml" && fileperms($rHandlestr."/".$this->mFilename)=='33279') { $this->mFilearray[$this->mi] =$rHandlestr."/".$this->mFilename; $this->mi++; }*/ } //$this->noThemernoPer($this->mFilearray[1]); closedir($this->mHandledir); /*$arrayvalue=array("Themeaa","Themeba","Themeab","Themeca","Themedd"); array_multisort($arrayvalue,SORT_ASC,SORT_STRING); for($g=0;$g<count($arrayvalue);$g++) { echo $arrayvalue[$g]."<br/>"; }*/ array_multisort($this->mFilearray,SORT_ASC,SORT_STRING); $dummyarr=array(); $dummyarr=$this->mFilearray; //write the file section wise to display two templates in a row for($j=0;$j<$this->mi;$j=$j+2) { for($h=$j;$h<=$j+1;$h++) { $this->mFilearray[$h+1]=$dummyarr[$h]; } } for($j=1;$j<$this->mi;$j=$j+2) { $this->mStringwr=fwrite($this->mFcontwr,"<section ncount='$j'>n"); for($h=$j;$h<=$j+1;$h++) { if($this->mFilearray[$h]!="") { $this->mFread = fopen($this->mFilearray[$h],"rb"); $this->mContwr=fread($this->mFread,filesize($this->mFilearray[$h])); $this->mStringwr = fwrite($this->mFcontwr,$this->mContwr); fclose($this->mFread); } } $this->mStringwr=fwrite($this->mFcontwr,"</section>n"); } //File To Read and Transfer To content string and then write in a file $this->mStringwr=fwrite($this->mFcontwr,"<section>n"); $this->fd4= fopen($RdFilename,"rb"); $this->content=fread($this->fd4,filesize($RdFilename)); $this->mStringwr = fwrite($this->mFcontwr,$this->content); fclose($this->fd4); $this->mStringwr = fwrite($this->mFcontwr,"</section>n"); $this->getLower(); $rXmlObj = xmldocfile($this->mFilenamewr); if(is_Object($rXmlObj)) {return $this->mReturncode = $rXmlObj;} else { header("location:ErrorPage.html"); exit; } } else { header("location:ErrorPage.html"); exit; } return $this->mReturncode; } //The File is not found in an array then the user is redirected to the Ministries of Listservices //Home page of the TAGnet function noThemernoPer($FileName) { if($FileName=='') { header("location:ErrorPage.html"); exit; } } function validate($RdFilename) { if(!file_exists ($RdFilename)) { header("location:MainPage.html"); exit; } } } ?>