|
Class template
{
Var $ temp; // file name of the template page read (including path)
Var $ html; // The html file name to be generated (including the path)
Var $ err; // error code
Var $ test; // data stream
Var $ arr; // array mode to be replaced (key name-> Template tag, key value-> replace content)
Function template ()
{
$ This-> temp = "";
$ This-> html = "";
$ This-> err = 0;
$ This-> test = "";
}
Function templatehtml ($ temp, $ html, $ arr)
{
$ Err = $ this-> chkfile ($ temp );
If (int) $ err = 0)
{
$ Fp = fopen ($ temp, "r"); // open the template page in read-only mode
$ Test = fread ($ fp, filesize ($ temp); // read the data stream from the template page
$ Test = $ this-> arr_replace ($ arr, $ test); // replace the file
$ Err = $ this-> writefile ($ html, $ test); // Generate a static page
}
Echo "generated by Template page". $ temp. ". $ html. $ this-> error ($ err );
Return;
}
/*
* Determine whether a file exists
* An error message is returned.
*/
Function chkfile ($ file)
{
If (file_exists ($ file ))
{
Return 0;
}
Return 1;
}
/*
* Replace the data stream mode based on the content of the array File (key name-> Template tag, key value-> replace content)
* Return data stream
* Parameter $ arr: Array
* Parameter $ test: Data Stream
*/
Function arr_replace ($ arr, $ test)
{
$ Ss = $ test;
Foreach ($ arr as $ key => $ value)
{
$ Ss = str_replace ($ key, $ value, $ ss );
}
Return $ ss;
}
/*
* Write data streams to files.
* Return execution status
* Parameter $ html: the html file to be generated
* Parameter $ test: Data Stream
*/
Function writefile ($ html, $ test)
{
$ Stat = 2;
If ($ this-> chkfile ($ html) = 0) // checks whether the object exists.
{
$ Stat = 0; // returns 0 if it already exists.
}
If ($ f = fopen ($ html, "w") // open the file in writing mode. if the file does not exist, create
{
Fputs ($ f, $ test );
Fclose ($ f );
$ Stat = 0; // if the write is successful, 0 is returned.
}
Else
{
$ Stat = 2; // 2 is returned if a write failure occurs.
}
Return $ stat;
}
/*
* Error message
* An error message is returned.
* Parameter $ err: error number
* Parameter $ file: error file
*/
Function error ($ err)
{
$ Message = "";
Switch (int) $ err)
{
Case 0:
$ Message = "the static page is successfully generated ";
Break;
Case 1:
$ Message = "opening the template page failed. Check whether the template exists ";
Break;
Case 2:
$ Message = "file generation failed. Check the directory permission ";
Break;
Default:
$ Message = "Unknown error ";
}
Return $ message;
}
/*
*
* Mainly used to read template pages and return data streams (such as top and foot public files ,)
* Parameter $ file: Template page path
*/
Function readhtml ($ file)
{
$ Test = "";
$ Err = $ this-> chkfile ($ file );
If ($ err = 0)
{
$ Fp = fopen ($ file, "r"); // open the template page in read-only mode
$ Test = fread ($ fp, filesize ($ file); // read the data stream from the template page
}
Else
{
$ Test = $ file. $ this-> error ($ err );
}
Return $ test;
}
/*
*
* It is mainly used to delete generated files and does not return
* Parameter $ file: file path
*/
Function delete_file ($ file)
{
If (file_exists ($ file ))
{
$ Delete = chmod ($ file, 0777 );
$ Delete = unlink ($ file );
If (file_exists ($ file ))
{
$ Filesys = eregi_replace ("/", "", $ file );
$ Delete = system ("del $ filesys ");
Clearstatcache ();
If (file_exists ($ file ))
{
$ Delete = chmod ($ file, 0777 );
$ Delete = unlink ($ file );
$ Delete = system ("del $ filesys ");
}
}
Clearstatcache ();
}
}
}
/*
Call method
Demo.html code
<Html>
<Head> <title >{ title }</title>
<Body> {text} </body>
<Html>
$ SC = new template ();
// $ SC = new template ($ tmp, $ filename, $ arr );()
$ Tmp = "../template/temp. php Tutorial"; // template page
$ Filename = "test.html"; // generate a page
$ Foot = "../foot.html"; // contains the base file, the header file is the same
$ Arr = array ();
$ Arr ["{title}"] = "New title ";
$ Arr ["{text}"] = "new content ";
$ Arr ["{foot}"] = $ SC-> readhtml ($ foot );
$ SC-> templatehtml ($ tmp, $ filename, $ arr ); |