Fork me on GitHub

PHP生成TXT文件、php读取txt文件内容

访问PHP时生成TXT文件并自动下载。

$filename = "filename.txt";
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="' . $filename . '"');

  

输出内容:
直接用echo输出,“\r\n”用以换行。
 
第一步:处理中文文件名:
$ua = $_SERVER["HTTP_USER_AGENT"];  
$filename = "中文文件名.txt";  
$encoded_filename = urlencode($filename);  
$encoded_filename = str_replace("+", "%20", $encoded_filename);  
第二步:生成TXT文件:
复制代码
1 header("Content-Type: application/octet-stream");  
2 if (preg_match("/MSIE/", $_SERVER['HTTP_USER_AGENT']) ) {  
3     header('Content-Disposition:  attachment; filename="' . $encoded_filename . '"');  
4 } elseif (preg_match("/Firefox/", $_SERVER['HTTP_USER_AGENT'])) {  
5     header('Content-Disposition: attachment; filename*="utf8' .  $filename . '"');  
6 } else {  
7     header('Content-Disposition: attachment; filename="' .  $filename . '"');  
8 }
复制代码
第三步:输出内容:
直接用echo输出,“\r\n”用以换行。
 
 

 

 

读取文件,总结一句话:file()

大概给了一个txt里面内容是

 

然后要求在页面原样输出,不换行,不要格式的话 直接  file_get_contents就完事,要是按照格式的话 就得用file函数了,下面说下file函数是干什么的。

 

file() 函数把整个文件读入一个数组中。

与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。

如果失败,则返回 false。

 

所以 程序可以写成这样

复制代码
1 <?php
2 $file = 'rand.txt'; //先读取文件
3 
4 $cbody = file($file); //file()函数作用是返回一行数组,txt里有三行数据,因此一行被识别为一个数组,三行被识别为三个数组
5 for($i=0;$i<count($cbody);$i++){ //count函数就是获取数组的长度的,长度为3 因为一行被识别为一个数组 有三行
6 
7 echo $cbody[$i];echo "<br/>"; //最后是循环输出每个数组,在每个数组输出完毕后 ,输出一个换行,这样就可以达到换行效果
8 }
9 ?>
复制代码

这样的话 就可以原样输出了

原文:https://www.cnblogs.com/HoverM/p/7844061.html

 

posted @ 2021-02-07 16:46  君乐豹  阅读(1111)  评论(0编辑  收藏  举报
Live2D