Home >Backend Development >PHP Problem >How to download txt files in php

How to download txt files in php

藏色散人
藏色散人Original
2021-09-21 09:29:555083browse

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");".

How to download txt files in php

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)

1.txt download

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

Recommended study: "

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:How to use token PHPNext article:How to use token PHP