`
renzhen
  • 浏览: 251136 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PHP输出非HTML格式文件总结

    博客分类:
  • PHP
阅读更多

   在PHP系统开发中,除了显示HTML外,偶尔也会遇到输出文件的问题,关于输出文件,主要是三类,1. 输出磁盘中已有文件 2. 输出生成的文件(如:csv pdf等) 3. 获取生成文件内容,做处理后输出,现在我一一对三类输出做一下总结。

   1. 输出磁盘中已有文件

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

 

<?php
$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');
    ob_clean();
    flush();
     readfile($file);
    exit;
}
?> 

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

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

   

<?php   
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举例

<?php   
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输出非HTML格式文件总结就到这里,其实PHP中的input/output streams功能十分的强大,用好了,能够简化编码,提高效率,有空不妨关注学习一下。

0
0
分享到:
评论

相关推荐

    php生成html文件方法总结

    ### PHP生成HTML文件方法总结 #### 一、前言 在Web开发中,有时需要将动态生成的内容转换为静态HTML文件,以提高访问速度或减轻服务器负担。PHP作为一种广泛使用的服务器端脚本语言,提供了多种生成HTML静态文件的...

    PHP格式化输出函数

    ### PHP格式化输出函数:深入理解与应用 在PHP编程中,格式化输出函数是开发者进行调试、数据展示以及信息处理的重要工具。本文将详细解析一个典型的PHP格式化输出函数,探讨其工作原理、参数配置及其应用场景,...

    php生成静态文件 php生成html文件

    总结来说,PHP生成静态HTML文件是通过输出缓冲区技术实现的,它能够帮助我们将动态生成的内容批量写入文件,提升网站性能,优化SEO,并降低服务器压力。通过结合其他PHP函数和工具,我们可以构建更复杂、高效的静态...

    html静态页面调用php文件的方法

    举一个具体的例子来说明如何实现上述过程:在HTML文件中,可以使用以下JavaScript代码调用一个PHP文件,并传递一个参数。 ```html &lt;script type="text/javascript" src="b.php?action=test"&gt;&lt;/script&gt; ``` 在这段...

    PHP生成Html文件

    这种方法利用PHP的输出缓冲控制函数来捕获页面输出的内容,并将其保存到HTML文件中。常用函数包括`ob_start()`、`ob_end_flush()`和`ob_get_contents()`等。 **实现步骤** 1. **开启缓冲**:使用`ob_start()`函数...

    通过thinkphp5+PHPOffice读取word文件写入到html文件

    // 输出HTML文件路径 $phpWord = IOFactory::load($docFilePath); $section = $phpWord-&gt;getFirstSection(); $html = ''; foreach ($section-&gt;getElements() as $element) { if ($element instanceof \...

    解决UTF-8格式PHP页面输出空行的简便方法

    charset=utf-8')`来确保PHP输出的是UTF-8编码的HTML,并且没有额外的空行。 4. **使用`echo`而不是`print_r`或`var_dump`**: `print_r`和`var_dump`用于调试,它们会自动添加换行符。在生产环境中,应使用`echo`...

    PHP实现即时输出、实时输出内容方法

    对于运行时间较长的PHP程序来说可能都需要即时输出内容来查看运行情况。 复制代码 代码如下: header(“Content-type:text/html;charset=utf-8″); #设置执行时间不限时 set_time_limit(0); #清除并关闭缓冲,输出到...

    php word转html格式类

    标题中的“php word转html格式类”指的是一个PHP类,它的主要功能是读取Microsoft Word文档的内容,并将其转换为HTML格式,而不是直接将Word文件转换为HTML文件。这种做法的优点在于可以对转换过程进行自定义,例如...

    simple_html_dom,php下的html文件DOM解析库

    6. **保存修改**:完成修改后,使用`save()`函数保存为HTML文件,或者`outertext`属性获取修改后的HTML字符串。 ```php $html-&gt;save('output.html'); // 保存到文件 echo $html-&gt;outertext; // 输出修改后的HTML...

     PHP生成静态页面并不是指PHP的动态解析,输出HTML页面,而是指用PHP创建HTML页面。

    **PHP生成静态页面**并不是指PHP动态解析并输出HTML页面,而是指利用PHP脚本来创建HTML文件。这种做法的优点在于能够减轻服务器压力、提高网站访问速度,并且对搜索引擎更加友好。但同时也存在一定的缺点,比如维护...

    php修改HTML,php修改本地文件

    通过在HTML文件中嵌入PHP代码,我们可以让服务器在发送HTML响应给客户端之前对其进行处理。例如,PHP可以用来动态地改变页面标题、内容或者根据用户输入提供个性化的展示。 在PHP中修改HTML,主要通过以下几种方式...

    PHP 基础实例教程(PHP网页实例版)

    PHP nl2br()格式化输出 PHP 打印格式化输出 PHP 字符串的整理 PHP 改变字符串中字母的大小写 PHP 处理特殊字符 访问表单变量 PHP 表单变量(POST方法) PHP 表单变量(GET方法) PHP 字符串的连接 PHP heredoc语法 PHP ...

    PHP输出静态页.pdf

    5. **写入文件:** 最后,将`$content`中的内容写入指定的静态HTML文件中。 #### 二、利用`ob`系列函数生成静态页面 除了模板技术之外,PHP还提供了一套`ob`系列函数来实现类似的功能。这些函数主要用于操作输出...

    输出目录特定文件

    &lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;title &gt; ORa |源码 ...-- 尝试屏蔽被嵌入的非页面元素,包括JavaScript--&gt; &lt;!-- &lt;iframe sandbox='' &gt; --&gt; &lt;/body&gt; &lt;/html&gt;

    php优化页面输出实例

    `api.php`通常用于提供JSON或XML格式的数据,优化这部分内容时应确保数据格式的简洁,同时启用HTTP缓存头,如`Cache-Control`和`ETag`,以允许客户端缓存响应。 关于搜索引擎优化(SEO),我们需要确保PHP页面生成...

    phpqrcode生成二维码可在html直接调用

    如果需要在网页上实时生成二维码,可以将上述PHP代码集成到服务器端的PHP文件中,然后在HTML中通过AJAX请求触发生成过程。这样,用户在页面上输入数据后,就可以实时看到对应的二维码。 此外,PHP QRcode还支持生成...

    PHP中读取文件的几个方法

    `readfile()` 直接将文件内容输出到浏览器或输出缓冲区。 **语法:** ```php int readfile(string $filename, bool $use_include_path = false, resource $context = null) ``` - `$filename`:文件路径。 - `$use...

    PHP生成HTML文件原理

    总结来说,PHP生成HTML文件的原理是通过PHP脚本动态计算并构建HTML结构,然后返回给浏览器进行渲染。这个过程中,可以利用PHP的内置功能和自定义逻辑,实现丰富的网页动态效果和交互功能。通过深入学习和实践,你将...

    PHP文件上传和下载

    当用户通过HTML表单提交包含`&lt;input type="file"&gt;`的字段时,服务器端的PHP脚本可以获取到上传文件的相关信息。以下是一个简单的文件上传示例: ```php &lt;?php if(isset($_FILES['file']) && $_FILES['file']['error...

Global site tag (gtag.js) - Google Analytics