php中输出文件,主要是三类:1. 输出磁盘中已有文件

2. 输出生成的文件(如:csv pdf等)

3. 获取生成文件内容,做处理后输出

以下分别作下总结。

1. 输出磁盘中已有文件这个功能十分常用,一般系统都支持下载上传的文件,这个功能的实现十分简单,可以使用readfile函数轻易完成。

复制代码 代码如下:

$file = 'a.pdf';

if (file_exists($file)) {

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename='.basename($file));

header('Content-Transfer-Encoding: binary');

header('Expires: 0');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Pragma: public');

b_clean();

flush();

readfile($file);

exit;

}

?>

2. 输出生成的文件(如:csv pdf等)有时候系统那个会输出生成的文件,主要生成csv,pdf,或者打包多个文件为zip格式下载,对于这部分,有些实现方法是将生成的输出成文件再通过文件方式下载,最后删除生成文件,其实可以通过php://output 直接输出生成文件,下面以csv输出为例。

复制代码 代码如下:

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename=a.csv');

header('Content-Transfer-Encoding: binary');

header('Expires: 0');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Pragma: public');

ob_clean();

flush();

$rowarr=array(array('1','2','3'),array('1','2','3'));

$fp=fopen('php://output', 'w');

foreach($rowarr as $row){

fputcsv($fp, $row);

}

fclose($fp);

exit;

?>

3. 获取生成文件内容,做处理后输出获取生成文件的内容一般是先生成文件,然后读取,最后删除,其实这个可以使用php://temp来做操作,以下仍以csv举例

复制代码 代码如下:

header('Content-Description: File Transfer');

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename=a.csv');

header('Content-Transfer-Encoding: binary');

header('Expires: 0');

header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

header('Pragma: public');

ob_clean();

flush();

$rowarr=array(array('1','2','中文'),array('1','2','3'));

$fp=fopen('php://temp', 'r+');

foreach($rowarr as $row){

fputcsv($fp, $row);

}

rewind($fp);

$filecontent=stream_get_contents($fp);

fclose($fp);

//处理 $filecontent内容

$filecontent=iconv('UTF-8','GBK',$filecontent);

echo $filecontent; //输出

exit;

?>

php中的input/output streams功能十分的强大,用好了,能够简化编码,提高效率,建议大家专入一下哦。

php输出没有格式文件,php输出非html格式文件的总结相关推荐

  1. 后缀为.adf 文件读取,转化为tiff(shp)格式,并输出netcdf格式的数据

    .adf文件读取,转化为shp或者tif格式,并输出Netcdf格式的数据文件 使用工具为arcgis,本人安装的是arcgis10.8,安装包可自行下载,或者私信我. 以海报高度地形数据的读取为例 ...

  2. Python读取hdf文件并转化为tiff格式输出

    目录 1.Python3读取hdf文件 2.使用Python2读取hdf文件 3. 如何使Python2和3兼容 3.1 修改Python2.7的名字 3.2 pip更新 3.2 使用pip2下载py ...

  3. c++的文件输入/输出

    1文件的概述 根据文件中数据的组织形式分为: 1 文本文件 文本文件又称ASCII文件,它的每一个字节存放一个ASCII代码,代表一个字符 输出文本:接收从内存输出的数据 输出文件,向它写入数据 of ...

  4. C语言基础之13:文件输入/输出

    Tips1: 函数:fopen().getc().putc().exit().fclose() fprintf().fscanf().fgets().fputs() rewind().fseek(). ...

  5. c语言 文件流 输出数据类型,总结C++中输入输出流及文件流操作

    当程序员在编写程序的时候,最不可分割的是对文件做的相应的操作,总结C++中输入输出流及文件流操作大家都了解吗?想要了解的朋友,就随爱站技术频道小编来看看吧. 1.流的控制 iomanip        ...

  6. linux下比较文件并输出,Linux使用diff命令比较文件找出文件之间相同的部分

    如果你需要比较系统文件的内容,那么你就会是使用到diff命令,可找出文件之间相同的部分,下面小编就给大家详细介绍下Linux diff命令的用法. diff 命令是 linux上非常重要的工具,用于比 ...

  7. java遍历给定目录,树形结构输出所有文件,包括子目录中的文件

    http://www.cnblogs.com/jenson138/p/4691418.html import java.io.File;public class ReadDirectory {// 文 ...

  8. php输出网络连接,如何打开php文件和输出内容

    php是什么文件?php文件如何打开?如何输出php内容?我们经常会遇到一些以php格式.php结尾的文件,对于不认识这种文件是什么,又不知道怎么打开php文件,下面网络自学网就来详细介绍什么php文 ...

  9. java怎样输出一个文件夹,java合并一个文件夹下所有txt文件,输出到另一个txt,...

    java合并一个文件夹下所有txt文件,输出到另一个txt,最近写了个单元测试,递归调用方法,把同一个文件夹里所有的txt合并输出到一个txt文件.参考了两个博客,分别是已有的方法,还有个就是检测tx ...

最新文章

  1. 【CVPR 2022】只用一张图+相机走位,AI就能脑补周围环境
  2. asp之GetArray提取链接地址,以$Array$分隔的代码
  3. GT考试(bzoj 1009)
  4. [BUUCTF-pwn]——ciscn_2019_es_2(内涵peak小知识)
  5. 设计时晶振的问题库(z)
  6. Qt 入门 ---- 如何在程序窗口显示图片?
  7. 面试刷题29:mysql事务隔离实现原理?
  8. macos远程桌面连接_如何在macOS中使用Microsoft远程桌面连接Amazon EC2
  9. java系统性能优化之mysql数据库优化
  10. 【Mybatis源码解析】Mybatis源码体系结构
  11. edge浏览器如何新建IE tab
  12. 用Python做图片分类:前置处理,图片的缩小保存
  13. 计算机tpm管理,TPM管理工厂实施TPM可能面临的陷阱
  14. 相对传统桌面设计器,在线报表设计器价值何在?
  15. 【mysql】大小写规范
  16. MATLAB学习笔记(注释超详细)
  17. 【毕业设计_课程设计】基于机器学习的情感分类与分析算法设计与实现(源码+论文)
  18. VnlnHub GeminiInc-Pentest-v2
  19. 合肥内推 | 商汤智能车舱研发团队招聘计算机视觉算法实习生
  20. 基于51单片机驱动ADXL346 (LCD1602显示)

热门文章

  1. matlab 绘图(1 for 师姐王小莉)
  2. badusb(一)环境配置
  3. mysql5.7 flashback_Flashback for MySQL 5.7
  4. 技术大神们都常看哪些公众号?
  5. java提升班蓝桥_Java实现蓝桥杯-算法提高 P1003
  6. detectron2的构建安装与常见问题
  7. 北京市2011年公园游览年票指南
  8. Scikit-learn section6 for cvpytorch
  9. 【译】做好这几件事,代码质量可以提升一个档次
  10. excel教程图文大全