1. <?php
    2. /**
    3. * 导出keywords表数据
    4. */
    5. require_once(dirname(__FILE__)."/dede/include/common.inc.php");
    6. /*$dsn = "mysql:host=localhost;dbname=数据库名称";
    7. $pdo = new PDO($dsn,'用户名','密码');
    8. $res = $pdo->query("SELECT * FROM `dede_archives`");
    9. $data = $res->fetchAll(PDO::FETCH_ASSOC);
    10. print_r($data);die;*/
    11. $sql = "SELECT * FROM `dede_keywords`";
    12. $dsql->SetQuery($sql);
    13. $dsql->Execute();
    14. $list = [];
    15. while($row = $dsql->GetArray()){
    16. $list[] = $row;
    17. }
    18. // 下载
    19. set_time_limit(0);
    20. ini_set('memory_limit', '256M');
    21. //下载csv的文件名
    22. $fileName = 'dede_keywords.csv';
    23. //设置header头
    24. header('Content-Description: File Transfer');
    25. header('Content-Type: application/vnd.ms-excel');
    26. header('Content-Disposition: attachment; filename="' . $fileName . '"');
    27. header('Expires: 0');
    28. header('Cache-Control: must-revalidate');
    29. header('Pragma: public');
    30. //打开php数据输入缓冲区
    31. $fp = fopen('php://output', 'a');
    32. $heade = ['aid', 'keyword', 'rank', 'sta', 'rpurl'];
    33. //将数据编码转换成GBK格式
    34. mb_convert_variables('GBK', 'UTF-8', $heade);
    35. //将数据格式化为CSV格式并写入到output流中
    36. fputcsv($fp, $heade);
    37. //如果在csv中输出一个空行,向句柄中写入一个空数组即可实现
    38. foreach ($list as $value) {
    39. //将数据编码转换成GBK格式
    40. mb_convert_variables('GBK', 'UTF-8', $value);
    41. $data['aid'] = $value['aid'];
    42. $data['keyword'] = $value['keyword'];
    43. $data['rank'] = $value['rank'];
    44. $data['sta'] = $value['sta'];
    45. $data['rpurl'] = $value['rpurl'];
    46. fputcsv($fp, $data);
    47. //将已经存储到csv中的变量数据销毁,释放内存
    48. unset($value);
    49. }
    50. //关闭句柄
    51. fclose($fp);