关于php导出csv的问题

WBOY
Freigeben: 2016-06-23 14:02:25
Original
1015 Leute haben es durchsucht

在线等,问下大家是否知道,php在下载csv文件时文件中为什么出现html源码 xls文件却是正常的


回复讨论(解决方案)

基于你糟糕的描述,我只能给出一个糟糕的答案??你的代码有问题

我将php生成的csv文件放在页面,点击可下载,打开下载csv 打开后内容最后出现一段html代码 明白了吗!

生成时就有了
要看到你的代码

if ($opt == '') {			if (!in_array($userid, $okuser)) {	            echo "你没有权限浏览此页面";	            exit;            } else {            	$web_folder = "/tj/";				$log_folder = "/tj/";            }			$logFile = array();			if (is_dir($log_folder)) {            if ($dh = opendir($log_folder)) {                while (($file = readdir($dh)) != false) {                    if ($file != "." && $file != "..") {                        $logFile[$file] = $file . "&ver=" . mt_rand();                    }                }            }		}		arsort($logFile);				$smarty->assign("logfile",$logFile);		$smarty->assign("web_folder",$web_folder);		} 		elseif($opt == 'download'){			if (!in_array($userid, $okuser)) {	            echo "你没有权限浏览此页面";	            exit;            }			$filename =  $cgi->filename;			header("Content-Type:text/csv");			header("Content-Type:text/xls");			header("Content-Disposition:attachment;filename=".$filename);			readfile("/tj/".$filename);		}		else {			echo "你没有权限浏览此页面";            exit;		}
Nach dem Login kopieren
这是php code
{if $opt == ''}{include file="menus.htm"}<div>统计表:</div><br/><br/><br/><TABLE style='width:90%' border="0" cellpadding="2"><tr>    <td>    下载链接    </td></tr><TR>	<TD>	{foreach from=$logfile key=k item=v}	<li><a href="mylog?filename={$v}&opt=download" target="_blank">{$k}</a></li>	{/foreach}	</TD></TR></TABLE><br/><TABLE style='width:90%' border="0"</TABLE>{include file="foot.htm"}{/if}{if $opt=='download'}{/if}
Nach dem Login kopieren
这是html code

php生成的a.csv文件可以肯定是对的,但通过a页面下载,把a页面的html源码也输出到csv文件中了
比较郁闷!

目测你最后一个table 没闭合。

我粘贴的问题 闭合了,看来这个问题很少会遇到啊 !

header("Content-Type:text/csv");
header("Content-Type:text/xls");

怎么发送两个content-type头

嗯 对因为我要下载的东西有 xls 格式 也有csv格式
我查了下,找到问题了,问题出在

readfile("/tj/".$filename);
Nach dem Login kopieren
这一句,
读取完了文件给一个die(); 抑制页面输出,否则,导出的excel 会出现请求页面的html源码;
解决办法:在redfilie这一句后加一个die()或者exit; 即可解决!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage