나는 here 주어진 설명을 따라 파일에 쿼리 결과를 작성했습니다. 하지만이 경우에는 먼저 파일 헤더를 열고 작성해야합니다. 그런 다음 여러 쿼리에 대해 쿼리 결과를 하나씩 작성/추가하는 작업을 계속하십시오. 이 추가 부분은 필자가 함수로 쓴 것입니다. 스크립트가 헤더 (첫 번째 부분부터 만)로 파일을 쓰는 문제는 호출 될 때 함수에있는 fputcsv 명령을 따르지 않습니다. 이 문제를 해결할 때 저를 도울 수 있습니까? 그런 다음 쿼리 부분은 (내가 같은 쿼리 부품의 여러 동일한 기능을 호출 각각이) 이런 식으로 어느 정도입니다fputcsv 및 fwrite가 작동하지 않습니다.
<?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);
?>
감사
파일
$ fp는 (는) 귀하의 기능에서 사용할 수 없습니다. error_reporting을 현명한 디버깅 값 (E_ALL)으로 설정하면 PHP가 이와 같은 내용을 알려줍니다. 그리고 가변 범위의 기본에 대해 읽어보십시오. http://www.php.net/manual/en/language.variables.scope.php – CBroe
또한 csv-headers는 HTTP 헤더 사이에 있습니다. 후자가 줄 바꿈으로 구분 된 후에 배치해야합니다. – Caramiriel
고마워, 내가 코드의 시작 부분에 error_reporting (E_ALL) 시도했는데 오류를보고하지 않았다 :(. 둘째 페이지 변수 전역에 제안 된 두 번째로 filehandle $ fp 전역 선언 할 수없는 경우 찾을 수 없습니다. 전역 $ fp는 함수 내부와 외부에서 모두 가능하지만 도움이되지 못했습니다. 어떻게하면 글로벌하게 만들 수 있습니까? 감사합니다. –