访问PHP时生成TXT文件并自动下载。
$filename = "filename.txt"; header("Content-Type: application/octet-stream"); header('Content-Disposition: attachment; filename="' . $filename . '"');
输出内容:
直接用echo输出,“
”用以换行。
第一步:处理中文文件名:
$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输出,“
”用以换行。
读取文件,总结一句话: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