Мне удалось экспортировать мою базу данных в csv в качестве загружаемого файла. Однако то, что мне теперь нужно сделать, – это вместо того, чтобы создавать прямой файл .csv, который был загружен, мне нужно его просто сохранить в папку с именем «csv» на сервере. Вот мой код для текущего экспорта. Мне нужна помощь в сохранении части сервера. CHMOD в папке (csv) – 777
$today = date('Ym-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";
Все, что вам нужно добавить, это вызов file_put_contents()
. У вас уже есть корректный формат csv в $data
так что процесс записи прост:
// $filename is whatever you need the file to be called file_put_contents("/path/to/csv/" . $filename, "$header\n$data");
Вместо 777
разрешений в папке csv он должен принадлежать пользователю, который веб-сервер работает как с 700
, или принадлежит группе владельцем веб-сервера как 770
.