我已成功将数据库导出为csv作为可下载文件。然而,我现在需要做的是不是创建一个直接的.csv文件,我需要它只需保存到服务器上名为“csv”的文件夹。这是我当前导出的代码。我需要帮助保存到服务器部分。文件夹(csv)上的CHMOD是777
$today = date('Y-m-d');
$select = "SELECT * FROM goldpacks WHERE date = '$today'";
$export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );
$fields = mysql_num_fields ( $export );
for ( $i = 0; $i < $fields; $i++ )
{
$header .= mysql_field_name( $export , $i ) . "\t";
}
while( $row = mysql_fetch_row( $export ) )
{
$line = '';
foreach( $row as $value )
{
if ( ( !isset( $value ) ) || ( $value == "" ) )
{
$value = "\t";
}
else
{
$value = str_replace( '"' , '""' , $value );
$value = '"' . $value . '"' . "\t";
}
$line .= $value;
}
$data .= trim( $line ) . "\n";
}
$data = str_replace( "\r" , "" , $data );
if ( $data == "" )
{
$data = "\n(0) Records Found!\n";
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=import.csv");
print "$header\n$data";
答案 0 :(得分:9)
您需要添加的是对file_put_contents()
的调用。您已经在$data
中正确格式化了您的csv,因此编写过程很简单:
// $filename is whatever you need the file to be called
file_put_contents("/path/to/csv/" . $filename, "$header\n$data");
与csv文件夹的777
权限不同,它应由用户拥有,Web服务器与700
一样运行,或由Web服务器用户组拥有770
。