Linux日志
PHP记事本
JS记事本
数据库
团队资讯

php导出csv文件

分类:PHP记事本 发布时间:2017-05-30 10:39:44 阅读:作者:郑祥景

本文只挂主要的代码文件:

export.php文件代码:(输出的代码。分为拼接数据和修改头部输出。)

<?php
namespace Order\Controller;
class Export
{
    public function csv($data, $filename = null, $remark = null)
    {
        $str = "order number, SKU, product name, quantity, first name, last name, address, city, state, zip code, country, phone number, E-mail\n";
        $data = $remark == 'one' ? array(0 => $data):$data;
        foreach ($data as $data_row) {
            foreach ($data_row as $row){
                $str .=  '"'.$row['id'].'"'.','.
                         '"'.$row['SKU'].'"'.','.
                         '"'.$row['product_name'].'"'.','.
                         '"'.$row['quantity'].'"'.','.
                         '"'.$row['first_name'].'"'.','.
                         '"'.$row['last_name'].'"'.','.
                         '"'.$row['address'].'"'.','.
                         '"'.$row['city'].'"'.','.
                         '"'.$row['state'].'"'.','.
                         '"'.$row['zip_code'].'"'.','.
                         '"'.$row['country'].'"'.','.
                         '"'.$row['phone_number'].'"'.','.
                         '"'.$row['email'].'"'.','
                         ."\r\n";
            }
        }
        $filename = $filename == null ? date('Ymd').'.csv' : $filename.'.csv';
        $this->export_csv($filename, $str);
    }
    public function export_csv($filename, $str)
    {
        header("Content-type:text/csv");
        header("Content-Disposition:attachment;filename=".$filename);
        header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
        header('Expires:0');
        header('Pragma:public');
        echo $str;
    }
}
handle.php文件(本文件只是数据处理过程,个人保存用)

<?php
namespace Order\Controller;
use Order\Model\Order;
use Order\Model\OrderItem;
use Order\Model\OrderItemMeta;
use Order\Model\OrderMeta;
require_once __DIR__ . '/../Conf/Database.php';
require_once __DIR__ . '/../Model/Order.php';
require_once __DIR__ . '/../Model/OrderItem.php';
require_once __DIR__ . '/../Model/OrderItemMeta.php';
require_once __DIR__ . '/../Model/OrderMeta.php';
require_once __DIR__ . '/export.php';
class handle{
    protected $order;
    protected $meta;
    protected $order_item;
    protected $order_item_meta;
    public $filename;
    public function __construct()
    {
        $new_order= new Order();
        $new_meta = new OrderMeta();
        $new_order_item = new OrderItem();
        $new_order_item_meta = new OrderItemMeta();
        $this->order = $new_order;
        $this->meta = $new_meta;
        $this->order_item = $new_order_item;
        $this->order_item_meta = $new_order_item_meta;
    }
    public function result($id, $result)
    {
        $line_items = $this -> order_item
            -> where('order_id', $id)
            -> get()
            -> toArray();
        foreach ($line_items as $row) {
            $order_item_id = $row['order_item_id'];
            $product_id = $this->oderItemMeta($order_item_id, '_product_id');
            $order_meta =  $this->oderMeta($id)->toArray();
            $order_meta_array = array();
            foreach ($order_meta as $order_meta_row) {
                $order_meta_array[$order_meta_row['meta_key']] = $order_meta_row['meta_value'];
            }
            $line_items_result[] = array(
                'id' => $result['ID'],
                'SKU' => $this->oderMeta($product_id, '_sku'),
                'product_name' => $row['order_item_name'],
                'quantity' => $this->oderItemMeta($order_item_id, '_qty'),
                'first_name' => $order_meta_array['_shipping_first_name'],
                'last_name' => $order_meta_array['_shipping_last_name'],
                'address' => $order_meta_array['_shipping_address_1'].' '.$order_meta_array['_shipping_address_2'],
                'city' => $order_meta_array['_shipping_city'],
                'state' => $order_meta_array['_shipping_state'],
                'zip_code' => $order_meta_array['_shipping_postcode'],
                'country' => $order_meta_array['_shipping_country'],
                'phone_number' => $order_meta_array['_billing_phone'],
                'email' => $order_meta_array['_billing_email'],
                );
        }
        return $line_items_result;
    }
    public function oderMeta($id, $meta_key = null)
    {
        if ($meta_key != null) {
            return (string)$this -> meta
                -> select('meta_value')
                -> where('post_id', $id)
                -> where('meta_key', $meta_key)
                -> first()['meta_value'];
        }
        return $this -> meta
            -> select('meta_key', 'meta_value')
            -> where('post_id', $id)
            -> get();
    }
    public function oderItemMeta($id, $meta_key)
    {
        return (string)$this -> order_item_meta
            -> select('meta_value')
            -> where('order_item_id', $id)
            -> where('meta_key', $meta_key)
            -> first()['meta_value'];
    }
}


  

   编辑:郑祥景

[随享社区版权所有 未经许可不得转载 ]

返回首页


推荐
Linux日志
PHP记事本
JS记事本
数据库
团队资讯
在线客服随享宝宝
有任何问题,都可以戳我反馈哦!
微信公众号 方便 快速
扫描二维码 关注公众号

版权所有:天妖云/随享社区V5.2 beta Copyright 2015-2019 TIAYO.COM Inc. All rights reserved.