当需要在 PHP 中生成 UTF-8 编码格式的文件时,可以采用以下两种方法:
1. 使用 fopen 和 fwrite 函数
可以使用 PHP 内置函数 fopen 和 fwrite 来生成 UTF-8 格式的文件。具体实现方式如下:
$file = fopen('output.txt', 'w');
$text = "这是一个 UTF-8 编码格式的文本";
fwrite($file, $text);
fclose($file);
上述代码中,首先通过 fopen
函数创建了一个名为 output.txt
的文件,并指定了写入模式(w
),表示如果文件不存在则创建。然后使用 fwrite
函数将文本写入文件,之后使用 fclose
函数关闭文件。
注意事项:
- 需要在文件头部加上以下代码,以确保生成的是 UTF-8 编码格式的文件:
header('Content-Type: text/plain; charset=UTF-8');
- 需要在保存文件时,保证文件编码格式为 UTF-8。
2. 使用类库
使用 PHP 的第三方类库,较为方便地生成 UTF-8 格式的文件。本文以常用的 PHPExcel 类库为例。
方法一:
require_once 'PHPExcel/PHPExcel.php';
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '这是一个 UTF-8 编码格式的文本');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('output.xls');
上述代码中,首先通过 require_once 引入了 PHPExcel 类库,实现了在 PHP 中创建一个新的 Excel 文件,并将需要写入文件的内容写入了 A1 单元格。之后,使用 createWriter
方法定义文件格式,并将文件保存。
方法二:
require_once('PHPExcel/PHPExcel.php');
$objPHPExcel=new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '这是一个 UTF-8 编码格式的文本');
$objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->setUseBOM(true);
$objWriter->setDelimiter(',');
$objWriter->save('output.csv');
上述代码中,通过 setDelimiter
方法定义了分隔符为逗号 ,
,并且通过 setUseBOM
方法开启了带 BOM 的 UTF-8 编码格式保存。最后使用 save
方法将文件保存。
注意事项:
-
不能忽略 PHPExcel 类库的引入,否则无法使用其中提供的方法。
-
若需要生成 UTF-8 格式的 csv 文件,则需要使用
PHPExcel_IOFactory::createWriter
方法并传入 'CSV' 值来定义文件格式。如果需要将上述内容输出到浏览器进行下载,则需要添加以下代码:
header('Content-Type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment;filename=output.csv');
这里的 Content-Disposition
头信息指定了文件名,浏览器在接收到这个信息时,会自动把该文件按照指定的名称下载到本地。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP生成UTF8文件的方法 - Python技术站