导出到 csv wordpress

2023-11-24

我需要将数据导出到 csv 文件中的一个表中。我能够正常获取数据,但浏览器并未生成 CSV 文件。

我的代码是这样的:它是标题的问题。我只得到带有逗号分隔值的输出,但没有得到 csv 文件。

/* Converting data to CSV */

public function CSV_GENERATE($getTable)
{
    ob_clean();
    global $wpdb;
    $field='';
    $getField ='';

    if($getTable){
        $result = $wpdb->get_results("SELECT * FROM $getTable");
        $requestedTable = mysql_query("SELECT * FROM ".$getTable);
        // echo "hey";die;//var_dump($result);die;

        $fieldsCount = mysql_num_fields($requestedTable);

        for($i=0; $i<$fieldsCount; $i++){
            $field = mysql_fetch_field($requestedTable);
            $field = (object) $field;         
            $getField .= $field->name.',';
        }

        $sub = substr_replace($getField, '', -1);
        $fields = $sub; # GET FIELDS NAME
        $each_field = explode(',', $sub);
        $csv_file_name = $getTable.'_'.date('Ymd_His').'.csv'; 
        # CSV FILE NAME WILL BE table_name_yyyymmdd_hhmmss.csv

        # GET FIELDS VALUES WITH LAST COMMA EXCLUDED
        foreach($result as $row){
            for($j = 0; $j < $fieldsCount; $j++){
                if($j == 0) $fields .= "\n"; # FORCE NEW LINE IF LOOP COMPLETE
                $value = str_replace(array("\n", "\n\r", "\r\n", "\r"), "\t", $row->$each_field[$j]); # REPLACE NEW LINE WITH TAB
                $value = str_getcsv ( $value , ",", "\"" , "\\"); # SEQUENCING DATA IN CSV FORMAT, REQUIRED PHP >= 5.3.0
                $fields .= $value[0].','; # SEPARATING FIELDS WITH COMMA
            }
            $fields = substr_replace($fields, '', -1); # REMOVE EXTRA SPACE AT STRING END
        }

        header("Content-type: text/x-csv"); # DECLARING FILE TYPE
        header("Content-Transfer-Encoding: binary");
        header("Content-Disposition: attachment; filename=".$csv_file_name); # EXPORT GENERATED CSV FILE
        header("Pragma: no-cache");
        header("Expires: 0"); 
        header("Content-type: application/x-msdownload");
        //header("Content-Disposition: attachment; filename=data.csv");

        return $fields; 
    }

现在效果很好。我们可以使用它作为插件。我修改了this邮政。感谢斯鲁蒂·斯里。

希望这对某人有所帮助:)

<?php

class CSVExport
{
/**
* Constructor
*/
public function __construct()
{
if(isset($_GET['download_report']))
{
$csv = $this->generate_csv();

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"report.csv\";" );
header("Content-Transfer-Encoding: binary");

echo $csv;
exit;
}

// Add extra menu items for admins
add_action('admin_menu', array($this, 'admin_menu'));

// Create end-points
add_filter('query_vars', array($this, 'query_vars'));
add_action('parse_request', array($this, 'parse_request'));
}

/**
* Add extra menu items for admins
*/
public function admin_menu()
{
add_menu_page('Download Report', 'Download Report', 'manage_options', 'download_report', array($this, 'download_report'));
}

/**
* Allow for custom query variables
*/
public function query_vars($query_vars)
{
$query_vars[] = 'download_report';
return $query_vars;
}

/**
* Parse the request
*/
public function parse_request(&$wp)
{
if(array_key_exists('download_report', $wp->query_vars))
{
$this->download_report();
exit;
}
}

/**
* Download report
*/
public function download_report()
{
echo '<div class="wrap">';
echo '<div id="icon-tools" class="icon32">
</div>';
echo '<h2>Download Report</h2>';
//$url = site_url();

echo '<p>Export the Subscribers';
}

/**
* Converting data to CSV
*/
public function generate_csv()
{
$csv_output = '';
$table = 'users';

$result = mysql_query("SHOW COLUMNS FROM ".$table."");

$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output = $csv_output . $row['Field'].",";
$i++;
}
}
$csv_output .= "\n";

$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j].",";
}
$csv_output .= "\n";
}

return $csv_output;
}
}

// Instantiate a singleton of this plugin
$csvExport = new CSVExport();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导出到 csv wordpress 的相关文章

  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth
  • file_get_contents,HTTP 请求失败

    我尝试使用以下方式从另一个网站获取内容file get contents但我总是收到 无法打开流 HTTP 请求失败 allow url fopen 已打开 并且我已经在防火墙关闭的情况下进行了测试 但还是会出现这种情况 请问还有什么原因呢
  • 如何改进 PHP 分页算法?

    我正在研究 PHP 中的分页算法 我可以猜测它需要改进的空间 所以我想对如何改进它有一些想法 无论是从 UI UX 的角度清理代码本身 还是你能想到的任何其他东西 该算法应输出如下所示的分页 1 2 3 6 7 8 97 98 99 or
  • Laravel 5 配置语言环境,不起作用

    已完成的修改 on 配置 应用程序 php locale gt env APP LOCALE en fallback locale gt en on env APP LOCALE pt 我也复制了 资源 lang en文件到 资源 lang
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • 如果端口不是 80,.htaccess 重定向到错误页面

    我正在运行一个便携式服务器 http www server2go web de 通过 USB 棒 问题是我还在我的本地计算机上安装了 WAMP 并且 Apache 不知何故在 Windows 启动时启动 因为一些我现在不记得的随机原因并且无
  • WooCommerce 自定义字段 - 多选

    我在 WooCommerce 的结账页面添加额外的字段 我可以添加文本框等基本字段 但需要添加一个 多 选择框 用户可以在其中选择多个项目 我已经弄清楚如何通过代码添加选择框 如下所示 add action woocommerce afte
  • 提交简单 PHP 表单时出现禁止错误

    我有一个不复杂的问题 这似乎比应有的更复杂 我有一个简单的表单 用于向网站添加内容 有些字段需要输入html 然而 当您在表单的不同部分输入某些 html 元素时 它会认为它讨厌您并抛出禁止的 403 错误 这是下面的表格
  • 使用 PHP 创建、编辑和删除 crontab 作业?

    是否可以使用 PHP 创建 编辑和删除 crontab 作业 我知道如何列出 Apache 用户当前的 crontab 作业 output shell exec crontab l echo output 但是如何使用 PHP 添加 cro
  • 如何在PHP中完成http响应并进行进一步处理?

    就我而言 我需要向客户端回显一个标志并发送一封电子邮件 现在客户端需要等待电子邮件发送 但我想把这两个步骤分开 该怎么做呢 你可以看一下异步运行 PHP 任务 https stackoverflow com questions 858883
  • 带摘要的 php curl 返回两个响应

    我发现了一个 奇怪 的 php CURL 行为 这让我抓狂 基本上我正在做的是使用curl 进行摘要身份验证的调用 这是我的代码的摘录 curl setopt this gt c CURLOPT HTTPAUTH CURLAUTH DIGE
  • 如何使用 Google Calendar API 和官方 PHP 库创建全天活动?

    我有这个代码 event new Event event gt setSummary event summary event gt setLocation event location start new EventDateTime sta
  • 如何使用 PATCH 更新简单的数据库字段?

    我是 php 和 API 的新手 我正在尝试学习这些方法 但我无法执行 PATCH 或 PUT 来更新我的简单 mysql 数据库 我使用了以下代码 if isset PATCH con mysqli connect localhost r
  • php 包含打印 1

    我编写了以下代码 当我将 include 函数与旨在输出到页面的函数 例如 或 echo include foo php 结合使用时 它会返回包含内容 但在已包含的内容后面带有 1 echo include foo php 应该 inclu
  • Twitch API - 无法使用 PHP 获取身份验证令牌

    stackoverflow 的成员们大家好 我不是一个喜欢寻求帮助的人 但在这种情况下 我认为这是解决我的问题的唯一方法 谷歌并没有给我太大帮助 所以 我的问题 我想使用 Twitch API 获取一些数据 听起来很容易 我希望是这样 下面
  • PHP 搜索部分字符串

    如何在键入时搜索部分字符串 不使用 MySQL 例如 MySQL 中的 LIKE 函数 但在搜索字符串时使用 PHP 例如 但这显然行不通 但是有没有一个函数可以搜索部分字符串 那太好了 EDIT 如果它在数组中怎么办 如果我使用 strp
  • 什么是 PHP session_start()

    它是否基于 cookie 启动当前会话 从 PHP 网站上得到的 PHP如何控制会话 如果我在用户打开我的登录页面时启动会话 我什至可以使用该会话做什么 我可以使用当前会话来获取有关登录用户的信息吗 PHP 会话系统允许您将数据安全地存储在
  • 如何在没有 SSH 和 CLI 访问生产的情况下部署 symfony 项目 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 大多数托管提供商仅具有 FTP 访问权限 是否可以 常见地进行 symfony 项目 3 x 或 4 x 的本地安装 然后通过 FTP 上
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • 将 docker-compose.yml 中的包安装到 docker 容器中

    我是 docker 和 docker compose 的初学者 我需要你的帮助 我正在使用 docker compose 制作 PHP NGINX PostgresQL symfony 开发环境 这里是 web image nginx 1

随机推荐

  • 当字段为空时,远程属性不会触发

    我在用着RemoteAttribute对于我表单上的特定字段 其目的并不重要 重要的是 每当字段发生更改时 它都需要触发验证操作 这对我来说工作得很好 除非该字段更改为空白 我用谷歌搜索过这个但没有找到结果 有谁知道如果RemoteAttr
  • 带有 lapply 的内部 S3 泛型

    我有一个 S3 通用函数 我希望将其作为包的内部部分 如果可能的话我宁愿不导出它 一个有趣的缺点是 似乎lapply无法找到或使用正确的 S3 方法 有谁知道这种行为背后的原因 下面是一个可重现的示例 其中涉及从我的 github 安装虚拟
  • 在导航控制器中单击后退按钮时会调用哪个方法?

    我想在导航控制器中单击后退按钮时保存数据库 所以我会在方法中插入代码 在导航控制器中单击后退按钮时会调用什么方法 要执行您要求的操作 请查看UINavigationControllerDelegate协议 即方法 void navigati
  • Scala 的 Actor 是否有非阻塞 IO 开源实现?

    我需要处理相当大的文件 500Meg zip 文件 Scala 的 actor 是否有非阻塞 IO 开源实现 如果我的问题是正确的 那么您需要文件的非阻塞 IO 那么我有坏消息要告诉你 NIO Java6 中的 Java NIO 在处理文件
  • 如何确定两组纬度/经度坐标之间的距离?

    我正在尝试写一些东西来确定纬度 经度坐标组之间的距离 我正在使用我在上面找到的以下代码这个网站 public static double distance double lat1 double lon1 double lat2 double
  • 使用 python 中的 Optimize.leastsq 方法获取拟合参数的标准误差

    我有一组数据 位移与时间 我使用 optimization leastsq 方法将其拟合到几个方程中 我现在正在寻找拟合参数的误差值 查看文档 输出的矩阵是雅可比矩阵 我必须将其乘以残差矩阵才能得到我的值 不幸的是 我不是统计学家 所以我有
  • 为什么 Blueimp 的 JQuery 文件上传会添加所有上一个文件。即使在 init 上设置了选项 [replaceFileInput: false] 和 [maxNumberOfFiles: 1],是否仍选择文件?

    我只有普通形式 带有一些输入字段和一个文件输入字段 我使用 Blueimp 的 Jquery 文件上传插件来上传文件 如果您选择一个文件然后单击上传按钮 它似乎可以工作 但是 如果您重新选择要上传的文件 它会保存所有选择的历史记录 并在上传
  • 为什么在循环中使用 sleep 时,Python 中的 print 不会暂停?

    这段代码 import time for i in range 10 print i time sleep 5 导致我的计算机挂起 5 秒 然后打印出 0 9 而不是每半秒打印一个数字 难道我做错了什么 print 默认情况下 打印到sys
  • Django获取视图中的静态文件URL

    我正在使用 reportlab pdfgen 创建 PDF 在 PDF 中有一张由以下人员创建的图像drawImage 为此 我需要图像的 URL 或视图中图像的路径 我成功构建了 URL 但如何获取图像的本地路径 我如何获取网址 pref
  • libc++ 的 wchar_t 输出

    include
  • PCWSTR 与 LPWSTR

    据我了解 如果我错了 请纠正我 它们之间的唯一区别是字符串是否可以被调用的函数修改 PCWSTR LPWSTR 我现在尝试将一个字符串从 C 传递到一个期望的函数PCWSTR 但我能找到的只是 MarshalAs UnmanagedType
  • C++:构造函数中的多维数组初始化

    我想在 C 中使用恒定大小的二维数组作为类成员 不过 我在构造函数中初始化它时遇到问题 这是我的非工作尝试 1 class A public int a 2 2 A A A a 1 2 2 4 yields error assigning
  • 将 SQL Server Compact Edition 数据源添加到 Visual Studio 中?

    我想在 Visual Studio 2013 4 的项目中添加 SQL Server Compact 版本 但我的列表中没有数据源 另外 我没有System Data Sqlce在我的集会上 如何将 SQL Server Compact 数
  • java.lang.NoSuchMethodError:accessibilityHitTest

    我正在使用 Sikulix 2 0 6 消息字段有错误 java lang NoSuchMethodError accessibilityHitTest 我看了https github com openjdk jdk pull 5702 但
  • DynamoDBMapper 仅在唯一时保存项目

    我试图根据两个不同列的组合来保持表中项目的唯一性 我有一个 instanceId 和 imageId 列 以及其他列 并基于以下几篇文章堆栈溢出 and AWS 论坛下面应该工作吗 public void saveUnique Server
  • 大写还是小写文档类型?

    编写 HTML5 文档类型时正确的方法是什么 or 在 HTML 中 DOCTYPE 不区分大小写 以下 DOCTYPE 均有效 在 XML 序列化 即 XHTML 中 DOCTYPE 不是必需的 但如果您使用它 DOCTYPE应该是大写
  • iOS 11 禁止像 Netflix 一样进行屏幕录制

    我的应用程序中正在播放视频 但我不想被录制 什么Netflix应用程序的作用是在录制屏幕时捕获音频 但不捕获视频 有人知道如何实现这个功能吗 你可以听一听UIScreenCapturedDidChange通知 NotificationCen
  • Laravel 范围(按数据透视值)

    假设我想存储有关客户的各种数据 因此我有两个由数据透视表链接的模型 在数据透视表上存储每个数据字段类型的客户值 Customer public function datafields return this gt belongsToMany
  • 如何从现有项目文件中知道确切的flex sdk版本?

    我收到了一个继承旧的 Flex 项目 我从未与 Flex 合作过 我安装了最新的 Flash Builder 我需要知道所使用的 Flex SDK 的确切版本 有没有办法从项目文件中知道所使用的SDK版本 提前致谢 如果它是一个 AIR 项
  • 导出到 csv wordpress

    我需要将数据导出到 csv 文件中的一个表中 我能够正常获取数据 但浏览器并未生成 CSV 文件 我的代码是这样的 它是标题的问题 我只得到带有逗号分隔值的输出 但没有得到 csv 文件 Converting data to CSV pub