Carrear
Erfahrenes Mitglied
Hi Leute,
mir wird die CSV Datei die ich erstelle logischerweise immer ausgegeben als Download. Ich möchte aber später einen Crobjob laufen lassen und die dann jedes mal in das gleich Verzeichnis speichern (darf auch überschreiben). Wie kann ich das machen?
mir wird die CSV Datei die ich erstelle logischerweise immer ausgegeben als Download. Ich möchte aber später einen Crobjob laufen lassen und die dann jedes mal in das gleich Verzeichnis speichern (darf auch überschreiben). Wie kann ich das machen?
PHP:
<?php
$host = 'localhost'; // MYSQL database host adress
$db = 'db'; // MYSQL database name
$user = 'db_user'; // Mysql Datbase user
$pass = 'passwort'; // Mysql Datbase password
$link = mysql_connect($host, $user, $pass);
mysql_select_db($db);
function exportMysqlToCsv($table,$filename = 'export.csv')
{
$csv_terminated = "\n";
$csv_separator = ";";
$csv_enclosed = '"';
$csv_escaped = "\\";
$sql_query = "select * from users";
$result = mysql_query($sql_query);
$fields_cnt = mysql_num_fields($result);
$schema_insert = '';
for ($i = 0; $i < $fields_cnt; $i++)
{
$l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed,
stripslashes(mysql_field_name($result, $i))) . $csv_enclosed;
$schema_insert .= $l;
$schema_insert .= $csv_separator;
} // end for
$out = trim(substr($schema_insert, 0, -1));
$out .= $csv_terminated;
// Format the data
while ($row = mysql_fetch_array($result))
{
$schema_insert = '';
for ($j = 0; $j < $fields_cnt; $j++)
{
if ($row[$j] == '0' || $row[$j] != '')
{
if ($csv_enclosed == '')
{
$schema_insert .= $row[$j];
} else
{
$schema_insert .= $csv_enclosed .
str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed;
}
} else
{
$schema_insert .= '';
}
if ($j < $fields_cnt - 1)
{
$schema_insert .= $csv_separator;
}
} // end for
$out .= $schema_insert;
$out .= $csv_terminated;
} // end while
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Length: " . strlen($out));
header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header("Content-Disposition: attachment; filename=$filename");
echo $out;
exit;
}
$table="users"; // this is the tablename that you want to export to csv from mysql.
exportMysqlToCsv($table);
?>
Zuletzt bearbeitet: