使用PHP创建CSV文件并将其保存到目录中

use*_*374 8 php

我是PHP的新手.我正在创建一个脚本,该脚本应该创建一个csv文件,其中包含来自我的数据库的一些数据,并将其保存到我服务器上的目录中.

我以某种方式完成了它,但这个文件总是下载.我不希望它下载.它应该只保存到一个目录.

以下是您的完整代码.

请帮帮我.

<?php
$MYSQL_HOST="localhost";
$MYSQL_USERNAME="root";
$MYSQL_PASSWORD="";
$MYSQL_DATABASE="paesana";
$MYSQL_TABLE="ds_orders";
mysql_connect( "$MYSQL_HOST", "$MYSQL_USERNAME", "$MYSQL_PASSWORD" ) or die( mysql_error( ) );
mysql_select_db( "$MYSQL_DATABASE") or die( mysql_error( $conn ) );


$filename="ePay";
$csv_filename = $filename."_".date("Y-m-d_H-i",time()).".csv";

header("Content-Type: application/vnd.ms-excel");

$today="2008-12-21";
$sql = "SELECT * FROM $MYSQL_TABLE where cDate='$today'";

$result=mysql_query($sql);

if(mysql_num_rows($result)>0){

$fileContent="Beneficiary Name,Beneficiary Account No,Beneficiary Bank Code,Transaction Amount,Narration\n";
    while($data=mysql_fetch_array($result))
    {
    $fileContent.= "".$data['customer_id'].",".$data['oNum'].","."$today".",".$data['cShipService']." ".$data['cShipMethod'].",".$data['cEmail'].",".$data['ccType'].",".$data['cShipInstruct'].",".$data['cShipFname']." ".$data['cShipLname']."\n";
}


$fileContent=str_replace("\n\n","\n",$fileContent);
    echo $fileContent;
}
header("content-disposition: attachment;filename=$csv_filename"); ?> 
Run Code Online (Sandbox Code Playgroud)

Her*_*uez 11

  1. 如果您不想下载结果,请删除标题.

  2. 在此之后:

    $csv_filename = $filename."_".date("Y-m-d_H-i",time()).".csv";
    
    Run Code Online (Sandbox Code Playgroud)

    加:

    $fd = fopen ($csv_filename, "w");
    
    Run Code Online (Sandbox Code Playgroud)
  3. 代替:

    echo $fileContent;
    
    Run Code Online (Sandbox Code Playgroud)

    使用

    fputs($fd, $fileContent);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 别忘了关闭文件

    fclose($fd);
    
    Run Code Online (Sandbox Code Playgroud)


小智 8

您可以使用以下代码:

$data_array = array (
            array ('1','2'),
            array ('2','2'),
            array ('3','6'),
            array ('4','2'),
            array ('6','5')
        );

$csv = "col1,col2 \n";//Column headers
foreach ($data_array as $record){
    $csv.= $record[0].','.$record[1]."\n"; //Append data to csv
}

$csv_handler = fopen ('csvfile.csv','w');
fwrite ($csv_handler,$csv);
fclose ($csv_handler);

echo 'Data saved to csvfile.csv';
Run Code Online (Sandbox Code Playgroud)