您的位置:首页 > 编程语言 > PHP开发

PHP生成txt文件标题及内容

2017-02-08 17:55 274 查看
生成文件,生成的内容是一张表格(像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 "生成失败";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: