我已按照此处给出的解释将查询结果写入文件。但在这种情况下,我必须先打开并写入文件头。然后继续为多个查询一一写入/附加查询结果。这个附加部分是我作为函数编写的。我的脚本仅使用标题(从第一部分开始)编写文件的问题,它不遵循函数中存在的 fputcsv 命令,当它被调用时。你能帮我解决这个问题吗?
这是我首先打开文件的代码:
<?php
$fp = fopen('php://output', 'w');
$headers = array("Index","Gene_symbol","Gene_Name","Human_entrez","Rat_entrez","Mouse_entrez","DbTF","PMID");
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="export.txt"');
fputcsv($fp, $headers,chr(9));
header('Pragma: no-cache');
header('Expires: 0');
?>
然后查询部分有点像这样(我有多个这样的查询部分,每个都调用相同的函数):
<?php
if (is_numeric($sterm))
{
$query="select * from tf where entrez_id_human=$sterm || entrez_id_rat=$sterm || entrez_id_mouse=$sterm";
$result=mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result)==0)
{echo "<tr><td align='center' colspan=6> $sterm not found! </td> </tr>";}
elseif (mysql_num_rows($result)>0)
{result_disp($result);}
}
?>
然后通过函数将结果写入文件是:
<?php
function result_disp($results)
{
if($fp && $results)
{
while ($rows = mysql_fetch_row($results))
{
fputcsv($fp, array_values($rows),chr(9));
} die;
}
}
最后在脚本末尾关闭文件
fclose($fp);
?>
谢谢