需要在php中使用fput()下载文件
我有多个条件,所以我试图生成一个函数,将sql数据下载到Csv文件。我在下载文件时遇到问题。每当我尝试下载时,页面只会重新加载,而文件不会下载。我不确定我做错了什么,因为当我使用echo命令时,我可以看到页面上显示的数据。如果有人能帮我并指引我走正确的路,那将非常有帮助需要在php中使用fput()下载文件,php,Php,我有多个条件,所以我试图生成一个函数,将sql数据下载到Csv文件。我在下载文件时遇到问题。每当我尝试下载时,页面只会重新加载,而文件不会下载。我不确定我做错了什么,因为当我使用echo命令时,我可以看到页面上显示的数据。如果有人能帮我并指引我走正确的路,那将非常有帮助 if(isset($_POST['report'])){ $sql = mysql_query("SELECT rating_postid,rating_posttitle,COUNT(rating_rating) AS
if(isset($_POST['report'])){
$sql = mysql_query("SELECT rating_postid,rating_posttitle,COUNT(rating_rating) AS Count,AVG(rating_rating) as Average FROM wp_ratings WHERE 1=1
GROUP BY rating_postid,rating_posttitle") or die(mysql_error());
generate_csv($sql);
}
function generate_csv($sql){
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
header("Content-Transfer-Encoding: binary");
$num_rows = mysql_num_rows($sql);
if($num_rows >= 1)
{
$row = mysql_fetch_assoc($sql);
$fp = fopen('php://output','w');
$sep = "";
$comma= "";
foreach($row as $name => $value)
{
$sep .= $comma . '' .STR_REPLACE('','""',$name);
$comma = ",";
}
$sep .= "\n";
fputs($fp,$sep);
mysql_data_seek($sql,0);
while($row = mysql_fetch_assoc($sql))
{
$sep = "";
$comma= "";
foreach($row as $name => $value)
{
$sep .= $comma . '' .STR_REPLACE('','""',$value);
$comma = ",";
}
$sep .= "\n";
fputs($fp,$sep);
}
fclose($fp);
//echo $fp;
}
else
{
echo 'NO RECORDS IN DATABASE';
}
}
除了你的问题;请停止使用
mysql.*
函数。它们已经被弃用了很长一段时间,并且将停止在PHP7中工作。使用PDO或mysqli.*
函数。感谢您的建议!我很感激!