PHP生成txt文件标题及内容

来源:互联网 发布:java instanceof方法 编辑:程序博客网 时间:2024/05/08 08:21
生成文件,生成的内容是一张表格(像html中的table),文件类型支持:txt、html、csv、pdf、doc(或者docx)。

参数为:生成文件的类型、生成内容的标题(数组),生成内容(数组,和标题相对应)。

/***生成txt的文件类.***/class createFile{    public $file_type;    public $file_name;    public $file_dir;    /**       *  构造函数:初始化生成文件的目录       */    public function __construct($file_dir){        $this->file_dir = $file_dir;    }    /**       * 生成文件的入口函数       * @string $file_name 文件名       * @string $file_type 文件类型       * @array $title 生成内容的标题行       * @array $data 生成内容       */    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;        # 测试点        //echo $fun,'--------------<br/>';        if( method_exists( $this,$fun))        {            $file = $file_name.".".$file_type;            $this -> $fun ($file,$title,$data);            return true;        }else{            return "NO!";        }    }    /**       *生成txt类型文件       *@string $file 文件名       *@array $title 标题       *@array $data 内容       */    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";        }        # 测试点        //echo $this->file_dir.$file,'-----123---------<br/>';        $fp = fopen($this->file_dir.$file, "a+");        $res = fwrite($fp,$string);        fclose($fp);if(!$fp || !$res){return false;}else{return true;}    }   }

用这个类生成txt文件

//生成TXT文件function createTXT($dir,$file_name,$data){if (!is_dir($dir)){                                 //如果目录不存在mkdir(iconv("UTF-8", "GBK", $dir),0777,true);   //创建目录}$file_type = "txt";$title     = array('编号','链 接');    //类似于表格里边的表头$file      = new createFile($dir);$flag      = $file-> create_file($file_name,$file_type,$title,$data);return $flag;}

生成txt文件如图:



测试:

//测试$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 "生成成功";}else{    echo "生成失败";}


0 0
原创粉丝点击