Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从前端将Wordpress页面导出到CSV_Php_Csv_Plugins_Wordpress - Fatal编程技术网

Php 从前端将Wordpress页面导出到CSV

Php 从前端将Wordpress页面导出到CSV,php,csv,plugins,wordpress,Php,Csv,Plugins,Wordpress,我正在寻找一个Wordpress插件,它可以获取页面内容的一部分(例如价目表),并将其导出到CSV。因此,我可以在页面上放置一个下载CSV链接,用户可以单击 如果你知道一个插件是否可以做到这一点,或者可以很容易地修改它来做到这一点,我将非常感激。以下是我编写的代码,它可能会帮助其他人: add_action('wp', 'generate_csv'); function generate_csv() { if ('csv' == (isset($_GET['format']) ? $_G

我正在寻找一个Wordpress插件,它可以获取页面内容的一部分(例如价目表),并将其导出到CSV。因此,我可以在页面上放置一个下载CSV链接,用户可以单击


如果你知道一个插件是否可以做到这一点,或者可以很容易地修改它来做到这一点,我将非常感激。

以下是我编写的代码,它可能会帮助其他人:

add_action('wp', 'generate_csv');
function generate_csv()
{
    if ('csv' == (isset($_GET['format']) ? $_GET['format'] : null)) {
        $calendar_shortcode_id = get_field("calendar_shortcode_id");
        if($calendar_shortcode_id) {
            global $post;
            $shortcode = "[google-calendar-events id='$calendar_shortcode_id' type='list']";
            $html = do_shortcode($shortcode);
            $doc = new DOMDocument(); $doc->loadHTML($html);
            $titles = array();
            $table=$doc;
            $a=0;
            $delim = "";
            $csv="";
            $num_cols=5;
            foreach($table->getElementsByTagName('span') as $td) {
            if($a==0) {$delim = "";}
            if($a<$num_cols) { $csv .= $delim . '"' . $td->nodeValue. '"';
            $delim = ",";
            }
            if($a==($num_cols-1)) { $csv .= "\n";$a=-1;}
            $a++;
            }
            header('Content-Encoding: UTF-8');
            header("Content-type: text/csv; charset=utf-8");
            header("Content-Disposition: attachment; filename=".$post->post_name.".csv");
            echo "\xEF\xBB\xBF"; // UTF-8 BOM
            echo utf8_decode($csv);
            exit;
        }
    }
}

询问建议或让我们为您找到一些东西是离题的。在发布这个问题之前,我花了好几个小时在谷歌上搜索解决方案并测试了一堆插件,但结果是空手而归。我在这里发帖是因为我希望其他处理过类似问题的人能够为我指明正确的方向。可以转换为插件:按钮打开一个新窗口,传递自己的URL,脚本读取页面$URL=$\u GET['uri']并导出。我同意@brasofilo,但是,Jay的示例需要重新编写,它有一些小缺陷,例如,它只能导出具有固定id属性的表和其他小问题。也许不是最健壮的插件,但它确实做到了。谢谢你们的帮助,伙计们: