Home > Article > Backend Development > How to download txt files in php
php method to implement txt download file: 1. Create a PHP sample file; 2. Add "function downloadtxt($file = "") {...}" code; 3. Pass "downloadtxt(" Just download the file using classmsg");".
The operating environment of this article: Windows 7 system, PHP version 7.1, Dell G3 computer.
How to implement txt file download in php?
PHP implements txt file generation and download
##1.txt Generation This function is used to output multiple pieces of data. Each field is separated by a space, and the next piece of data will be directly wrapped in a new line.
public function dlfileftxt($data = array(),$filename = "unknown") { header("Content-type:application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-Disposition:attachment;filename=$filename.txt"); header("Expires:0"); header("Cache-Control:must-revalidate,post-check=0,pre-check=0 "); header("Pragma:public"); if (!empty($data)){ foreach($data as $key=>$val){ foreach ($val as $ck => $cv) { $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv); } $data[$key]=implode(" ", $data[$key]); } echo implode("\n",$data); } exit(); }
dlfileftxt(array(1=>array("student"=>"小红","class"=>"一班"),2=>array("student"=>"老黄","class"=>"二班")),"班级信息");txtFile name: Class information
txt content:
Xiaohong Class 1
Laohuang Class 2
Code analysis:
"Content-type:application/octet-stream"
//Only binaries can be submitted, and only one binary can be submitted , if you submit a file, you can only submit one file, and there can only be one background receiving parameter, and it can only be a stream (or byte array)
"Accept-Ranges: bytes"
//Indicate whether the server supports it Specify range request and which type of segmented request
"Content-Disposition:attachment;filename=$filename.txt"
//Of course the filename parameter can contain path information, but User-Agnet will ignore this information , only the last part of the path information will be used as the file name. When you use this header information when the response type is application/octet-stream, it means that you do not want to display the content directly, but pop up a "File Download" dialog box, and the next step is up to you." Open "or "Save"
(Note: Some browsers will not be able to recognize Chinese strings and may appear garbled, and you need to force the character encoding of the string to UTF-8)
Since some browsers can interpret txt files, when using the browser to access a certain txt on the server, a new window will be opened to read the txt content instead of downloading the file
function downloadtxt($file = "") { if(!$file) return false; $filename = '/path/'.$file.'.txt'; //文件路径 header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".basename($filename)); readfile($filename); }
downloadtxt("classmsg");Code analysis:
"Content-Type: application/force-download"
//Force download file content
readfile()
//This function reads the file and writes the file content to the standard output device. The return value is the file size read
PHP Video Tutorial"
The above is the detailed content of How to download txt files in php. For more information, please follow other related articles on the PHP Chinese website!