<?php
/**
*1. A few days ago 1 The guy at work they led him to write 1 Class: Generate file, file type supported: txt , html , csv , pdf , doc( or docx) .
*
*2. The generated content is 1 A table (like html In the table ), parameters are: type of file to be generated, title of content to be generated (array), content to be generated (array, corresponding to title).
*/
/*************************************************
* class name:createFile
* description:create different type files
* author:fenghuo
* date:2013-11-12
************************************************/
/**
*3. I spent the evening helping him sort it out 1 A generation txt The document class .
***/
class createFile{
public $file_type;
public $file_name;
public $file_dir;
/**
* Constructor: Initializes the directory that generates the file
*/
public function __construct($file_dir){
$this->file_dir = $file_dir;
}
/**
* An entry function to generate a file
* @string $file_name The file name
* @string $file_type The file type
* @array $title The header line of the generated content
* @array $data Generated content
*/
public function create_file($file_name,$file_type,$title,$data){
if(empty($data)){
return false;
}
if(!empty($title)){
if(count($title) != count($data[0])){
return false;
}
}
if($file_name == ""){
$file_name = $this->file_name;
}
if($file_type == ""){
$file_type = $this->file_type;
}
$fun = 'mk_'.$file_type;
# Test point
echo $fun,'--------------<br/>';
if( method_exists( $this,$fun))
{
$file = $file_name.".".$file_type;
$this -> $fun ($file,$title,$data);
return true;
}else{
return "NO!";
}
}
/**
* generate txt Type of file
*@string $file The file name
*@array $title The title
*@array $data content
*/
public function mk_txt($file,$title,$data){
$string = "";
if(!empty($title)){
for( $i = 0;$i < count( $title ); $i++ ){
$string .= ' '. mb_convert_encoding($title[$i],'GBK',"UTF-8");
}
$string .="\r\n";
}
foreach ( $data as $key =>$var)
{
for( $i = 0; $i < count($data[$key]); $i++ ){
$string .= ' '. mb_convert_encoding($data[$key][$i],'GBK',"UTF-8");
}
$string .="\r\n";
}
# Test point
echo $this->file_dir.$file,'-----123---------<br/>';
$fp = fopen($this->file_dir.$file, "a+");
fwrite($fp,$string);
fclose($fp);
return true;
}
}
//**************************************
// test
$dir ='E:\dev\ ';
$file_name = "test";
$file_type = "txt";
$title = array("name","sex","age");
$data[] = array("tom","boy",20);
$data[] = array("perry","girl",20);
$file = new createFile($dir);
$flag = $file-> create_file($file_name,$file_type,$title,$data);
if($flag == true){
echo " Generate success ";
}else{
echo " Generate failure ";
}
?>