如何使用CURL命令发出PHP请求以将表数据输出到.csv文件,然后在文件准备好后下载该文件?到目前为止,我有:
PHP
if(isset($_GET['FROMCURL'])){
if(isset($_GET['table'])){
$table = $_GET['table'];
}
if($_GET['FROMCURL'] == "test"){
dump_data($db, $table);
}
}
function dumpData($db, $table){
$tables = array("x", "y", "z");
if (in_array($table, $tables)){
try{
$dumpData = $db->prepare("SELECT * FROM $table");
$dumpData->execute();
$data = fopen('../$table_'.time().'.csv', 'a');
while ($row = $dumpData->fetch(PDO::FETCH_ASSOC))
{
$csv = array();
foreach ($row as $key => $val){
if($key != 'x_blob' || $key != 'y_blob' || $key != 'z_blob'){
$csv[] = $val.',';
}
}
fputcsv($data, $csv);
}
}catch(PDOException $e){
echo $e->getMessage();
}
}
}
我猜的CURL命令是像
那样的东西curl http://www.website.com/php/tables.php?FROMCURL=test&table=x
我只是不确定如何让它立即下载文件
答案 0 :(得分:0)
你应该设置标题和 echo 或打印这样的内容:
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="sqldump.csv"');
echo $csvdata;
你可以用这样的cURL下载一个文件:
curl -o sqldump.csv "http://url/here"
其中'-o'表示'输出'
答案 1 :(得分:0)
使用curl获取get方法的内容
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.website.com/php/tables.php?FROMCURL=test&table=x");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch); // return response
curl_close($ch);