PHP生成txt文件标题及内容

生成文件,生成的内容是一张表格(像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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值