Я пытаюсь получить экспорт в CSV-скрипт для загрузки на сервер при запуске в качестве cronjob, но также по-прежнему работает через сеть.Формирование сгенерированного CSV для загрузки при запуске cron на сервере
Когда я запускаю сценарий из Интернета, он заставляет CSV загружать, что здорово, однако, когда я запускаю его на сервере (CentOS Server), он просто перефразирует содержимое файла.
Мне нужно его загрузить файл в область, определенную в cronjob.
//OK lets export
include("config.php");
$table = "data";
$filename = "Export_" . date("Y-m-d_H-i");
header("Content-type: text/csv; charset=UTF-8");
header("Content-Disposition: attachment; filename=" . $filename . ".csv");
// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');
// output the column headings
fputcsv($output, array('artist', 'title', 'presenter', 'timeplayed'));
// fetch the data
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db('prs');
$rows = mysql_query('SELECT * FROM '.$table.' WHERE timeplayed >= NOW() - INTERVAL 24 HOUR ORDER BY id DESC');
if($rows === FALSE)
{
die(mysql_error());
}
// loop over the rows, outputting them
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
Любой, у кого есть другие идеи?
Почему вы не используете ['SELECT ... INTO OUTFILE'] (http://dev.mysql.com/doc/en/select-into.html)? – eggyal
Использование 'headers()' довольно бессмысленно в cron-скрипте - потому что нет никакого браузера для загрузки: это то, что приходит с вырезанием и вставкой какого-либо кода elses, не пытаясь понять, что он на самом деле делает .... почему не писать в фактическое имя файла файловой системы, а не 'php: // output'? Вы даже определяете имя файла ('$ filename =" Export_ ". Date (" Y-m-d_H-i ");'), не используя его –