php生成txt文件标题及内容的方法

复制代码 代码如下:

复制代码 代码如下:

/**
*1.前几天一哥们工作中他们领导让他写一个上生成文件的类:生成文件,文件类型支持:txt、html、csv、pdf、doc(或者docx)。
*
*2.生成的内容是一张表格(像html中的table),参数为:生成文件的类型、生成内容的标题(数组),生成内容(数组,和标题相对应)。
*/
/*************************************************
* class name:createFile
* description:create different type files
* author:fenghuo
* date:2013-11-12
************************************************/
/**
*3.我利用晚上的时间帮他就整理了一个生成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;

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{ return false; }
if{ if != count{ return false; } } if{ $file_name =
$this->file_name; } if{ $file_type = $this->file_type; } $fun =
‘mk_’.$file_type; # 测试点 echo $fun,’————–
‘; if( method_exists { $file = $file_name.”.”.$file_type; $this ->
$fun ; return true; }else{ return “NO!”; } } /** *生成txt类型文件
*@string $file 文件名 *@array $title 标题 *@array $data 内容 */
public function mk_txt{ $string = “”; if{ for( $i = 0;$i < count{
$string .= ‘ ‘. mb_convert_encoding($title[$i],’GBK’,”UTF-8″); }
$string .=”rn”; } foreach ( $data as $key =>$var) { for( $i = 0;
$i < count{ $string .= ‘ ‘.
mb_convert_encoding($data[$key][$i],’GBK’,”UTF-8″); } $string
.=”rn”; } # 测试点 echo
$this->file_dir.$file,’—–123———
‘; $fp = fopen($this->file_dir.$file, “a+”); fwrite; fclose; return
true; } }
//**************************************
//测试 $dir =’E:dev ‘; $file_name = “test”; $file_type = “txt”;
$title = array; $data[] = array; $data[] = array; $file = new
createFile; $flag = $file->
create_file($file_name,$file_type,$title,$data); if{ echo “生成成功”;
}else{ echo “生成失败”; } ?>

}
if($file_type == “”){
$file_type = $this->file_type;
}
$fun = ‘mk_’.$file_type;
# 测试点
echo $fun,’————–
‘;
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 .=”rn”;
}
foreach ( $data as $key =>$var)
{
for( $i = 0; $i < count($data[$key]); $i++ ){
$string .= ‘ ‘.
mb_convert_encoding($data[$key][$i],’GBK’,”UTF-8″);
}
$string .=”rn”;
}
# 测试点
echo $this->file_dir.$file,’—–123———
澳门新葡亰3522平台游戏,’;
$fp = fopen($this->file_dir.$file, “a+”);
fwrite($fp,$string);
fclose($fp);
return true;
}