Server : Apache System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/saimikebio.com/ecshopjcw/ |
<?php /** * ECSHOP * ============================================================================ * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。 * 网站地址: http://www.ecshop.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ * * $Author: liubo $ * $Id: goods_export.php 17217 2011-01-19 06:29:08Z liubo $ */ define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); if ($_REQUEST['act'] == 'goods_export') { /* 检查权限 */ admin_priv('goods_export'); $smarty->assign('ur_here', $_LANG['14_goods_export']); $smarty->assign('cat_list', cat_list()); $smarty->assign('brand_list', get_brand_list()); $smarty->assign('goods_type_list', goods_type_list(0)); $goods_fields = my_array_merge($_LANG['custom'], get_attributes()); $data_format_array = array( 'ecshop' => $_LANG['export_ecshop'], 'taobao V4.3' => $_LANG['export_taobao_v43'], 'taobao V4.6' => $_LANG['export_taobao_v46'], 'taobao' => $_LANG['export_taobao'], 'paipai' => $_LANG['export_paipai'], 'paipai4' => $_LANG['export_paipai4'], 'custom' => $_LANG['export_custom'], ); $smarty->assign('data_format', $data_format_array); $smarty->assign('goods_fields', $goods_fields); assign_query_info(); $smarty->display('goods_export.htm'); } elseif ($_REQUEST['act'] == 'act_export_taobao') { /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $goods_class = intval($_POST['goods_class']); $post_express = floatval($_POST['post_express']); $express = floatval($_POST['express']); $ems = floatval($_POST['ems']); $shop_province = '""'; $shop_city = '""'; if ($_CFG['shop_province'] || $_CFG['shop_city']) { $sql = "SELECT region_id, region_name FROM " . $ecs->table('region') . " WHERE region_id IN ('$_CFG[shop_province]', '$_CFG[shop_city]')"; $arr = $db->getAll($sql); if ($arr) { if (count($arr) == 1) { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; } else { $shop_city = '"' . $arr[0]['region_name'] . '"' ; } } else { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; $shop_city = '"' . $arr[1]['region_name'] . '"'; } else { $shop_province = '"' . $arr[1]['region_name'] . '"' ; $shop_city = '"' . $arr[0]['region_name'] . '"'; } } } } $sql = "SELECT g.goods_id, g.goods_name, g.shop_price, g.goods_number, g.goods_desc, g.goods_img ". " FROM " . $ecs->table('goods') . " AS g ". $where; $res = $db->query($sql); /* csv文件数组 */ $goods_value = array('goods_name'=>'""', 'goods_class'=>$goods_class, 'shop_class'=>0, 'new_level'=>5, 'province'=>$shop_province, 'city'=>$shop_city, 'sell_type'=>'"b"', 'shop_price'=>0, 'add_price'=>0, 'goods_number'=>0, 'die_day'=>14, 'load_type'=>1, 'post_express'=>$post_express, 'ems'=>$ems, 'express'=>$express, 'pay_type'=>2, 'allow_alipay'=>1, 'invoice'=>0, 'repair'=>0, 'resend'=>1, 'is_store'=>0, 'window'=>0, 'add_time'=>'"1980-1-1 0:00:00"', 'story'=>'""', 'goods_desc'=>'""', 'goods_img'=>'""', 'goods_attr'=>'""', 'group_buy'=>0, 'group_buy_num'=>0, 'template'=>0, 'discount'=>0, 'modify_time'=>'""', 'upload_status'=>100, 'img_status'=>1); $content = implode(",", $_LANG['taobao']) . "\n"; while ($row = $db->fetchRow($res)) { $goods_value['goods_name'] = '"' . $row['goods_name'] . '"'; $goods_value['shop_price'] = $row['shop_price']; $goods_value['goods_number'] = $row['goods_number']; $goods_value['goods_desc'] = replace_special_char($row['goods_desc']); $goods_value['goods_img'] = '"' . $row['goods_img'] . '"'; $content .= implode("\t", $goods_value) . "\n"; /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_img']), $row['goods_img']); } } if (EC_CHARSET != 'utf-8') { $content = ecs_iconv(EC_CHARSET, 'utf-8', $content); } $zip->add_file("\xFF\xFE" . utf82u2($content), 'goods_list.csv'); header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } elseif ($_REQUEST['act'] == 'act_export_taobao V4.3') { /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $goods_class = intval($_POST['goods_class']); $post_express = floatval($_POST['post_express']); $express = floatval($_POST['express']); $ems = floatval($_POST['ems']); $shop_province = '""'; $shop_city = '""'; if ($_CFG['shop_province'] || $_CFG['shop_city']) { $sql = "SELECT region_id, region_name FROM " . $ecs->table('region') . " WHERE region_id IN ('$_CFG[shop_province]', '$_CFG[shop_city]')"; $arr = $db->getAll($sql); if ($arr) { if (count($arr) == 1) { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; } else { $shop_city = '"' . $arr[0]['region_name'] . '"' ; } } else { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; $shop_city = '"' . $arr[1]['region_name'] . '"'; } else { $shop_province = '"' . $arr[1]['region_name'] . '"' ; $shop_city = '"' . $arr[0]['region_name'] . '"'; } } } } $sql = "SELECT g.goods_id, g.goods_name, g.shop_price, g.goods_number, g.goods_desc, g.goods_img ". " FROM " . $ecs->table('goods') . " AS g ". $where; $res = $db->query($sql); /* csv文件数组 */ $goods_value = array('goods_name'=>'""', 'goods_class'=>$goods_class, 'shop_class'=>0, 'new_level'=>5, 'province'=>$shop_province, 'city'=>$shop_city, 'sell_type'=>'"b"', 'shop_price'=>0, 'add_price'=>0, 'goods_number'=>0, 'die_day'=>14, 'load_type'=>1, 'post_express'=>$post_express, 'ems'=>$ems, 'express'=>$express, 'pay_type'=>2, 'allow_alipay'=>1, 'invoice'=>0, 'repair'=>0, 'resend'=>1, 'is_store'=>0, 'window'=>0, 'add_time'=>'"1980-1-1 0:00:00"', 'story'=>'""', 'goods_desc'=>'""', 'goods_img'=>'""', 'goods_attr'=>'""', 'group_buy'=>0, 'group_buy_num'=>0, 'template'=>0, 'discount'=>0, 'modify_time'=>'""', 'upload_status'=>100, 'img_status'=>1); $content = implode("\t", $_LANG['taobao']) . "\n"; while ($row = $db->fetchRow($res)) { $goods_value['goods_name'] = '"' . $row['goods_name'] . '"'; $goods_value['shop_price'] = $row['shop_price']; $goods_value['goods_number'] = $row['goods_number']; $goods_value['goods_desc'] = replace_special_char($row['goods_desc']); $goods_value['goods_img'] = '"' . $row['goods_img'] . '"'; $content .= implode("\t", $goods_value) . "\n"; /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_img']), $row['goods_img']); } } if (EC_CHARSET != 'utf-8') { $content = ecs_iconv(EC_CHARSET, 'utf-8', $content); } $zip->add_file("\xFF\xFE" . utf82u2($content), 'goods_list.csv'); header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } /* 从淘宝导入数据 */ elseif ($_REQUEST['act'] == 'import_taobao') { $smarty->display('import_taobao.htm'); } elseif($_REQUEST['act'] == 'act_export_ecshop') { /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $sql = "SELECT g.*, b.brand_name as brandname " . " FROM " . $ecs->table('goods') . " AS g LEFT JOIN " . $ecs->table('brand') . " AS b " . "ON g.brand_id = b.brand_id" . $where; $res = $db->query($sql); /* csv文件数组 */ $goods_value = array(); $goods_value['goods_name'] = '""'; $goods_value['goods_sn'] = '""'; $goods_value['brand_name'] = '""'; $goods_value['market_price'] = 0; $goods_value['shop_price'] = 0; $goods_value['integral'] = 0; $goods_value['original_img'] = '""'; $goods_value['goods_img'] = '""'; $goods_value['goods_thumb'] = '""'; $goods_value['keywords'] = '""'; $goods_value['goods_brief'] = '""'; $goods_value['goods_desc'] = '""'; $goods_value['goods_weight'] = 0; $goods_value['goods_number'] = 0; $goods_value['warn_number'] = 0; $goods_value['is_best'] = 0; $goods_value['is_new'] = 0; $goods_value['is_hot'] = 0; $goods_value['is_on_sale'] = 1; $goods_value['is_alone_sale'] = 1; $goods_value['is_real'] = 1; $content = '"' . implode('","', $_LANG['ecshop']) . "\"\n"; while ($row = $db->fetchRow($res)) { $goods_value['goods_name'] = '"' . $row['goods_name'] . '"'; $goods_value['goods_sn'] = '"' . $row['goods_sn'] . '"'; $goods_value['brand_name'] = '"' . $row['brandname'] . '"'; $goods_value['market_price'] = $row['market_price']; $goods_value['shop_price'] = $row['shop_price']; $goods_value['integral'] = $row['integral']; $goods_value['original_img'] = '"' . $row['original_img'] . '"'; $goods_value['goods_img'] = '"' . $row['goods_img'] . '"'; $goods_value['goods_thumb'] = '"' . $row['goods_thumb'] . '"'; $goods_value['keywords'] = '"' . $row['keywords'] . '"'; $goods_value['goods_brief'] = '"' . replace_special_char($row['goods_brief'], false) . '"'; $goods_value['goods_desc'] = '"' . replace_special_char($row['goods_desc'], false) . '"'; $goods_value['goods_weight'] = $row['goods_weight']; $goods_value['goods_number'] = $row['goods_number']; $goods_value['warn_number'] = $row['warn_number']; $goods_value['is_best'] = $row['is_best']; $goods_value['is_new'] = $row['is_new']; $goods_value['is_hot'] = $row['is_hot']; $goods_value['is_on_sale'] = $row['is_on_sale']; $goods_value['is_alone_sale'] = $row['is_alone_sale']; $goods_value['is_real'] = $row['is_real']; $content .= implode(",", $goods_value) . "\n"; /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_img']), $row['goods_img']); } if (!empty($row['original_img']) && is_file(ROOT_PATH . $row['original_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['original_img']), $row['original_img']); } if (!empty($row['goods_thumb']) && is_file(ROOT_PATH . $row['goods_thumb'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_thumb']), $row['goods_thumb']); } } $charset = empty($_POST['charset']) ? 'UTF8' : trim($_POST['charset']); $zip->add_file(ecs_iconv(EC_CHARSET, $charset, $content), 'goods_list.csv'); header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } elseif ($_REQUEST['act'] == 'act_export_paipai') { /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $post_express = floatval($_POST['post_express']); $express = floatval($_POST['express']); if ($post_express < 0) { $post_express = 10; } if ($express < 0) { $express = 20; } $shop_province = '""'; $shop_city = '""'; if ($_CFG['shop_province'] || $_CFG['shop_city']) { $sql = "SELECT region_id, region_name FROM " . $ecs->table('region') . " WHERE region_id IN ('$_CFG[shop_province]', '$_CFG[shop_city]')"; $arr = $db->getAll($sql); if ($arr) { if (count($arr) == 1) { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; } else { $shop_city = '"' . $arr[0]['region_name'] . '"' ; } } else { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; $shop_city = '"' . $arr[1]['region_name'] . '"'; } else { $shop_province = '"' . $arr[1]['region_name'] . '"' ; $shop_city = '"' . $arr[0]['region_name'] . '"'; } } } } $sql = "SELECT g.goods_id, g.goods_name, g.shop_price, g.goods_number, g.goods_desc, g.goods_img ". " FROM " . $ecs->table('goods') . " AS g ". $where; $res = $db->query($sql); $goods_value = array(); $goods_value['id'] = -1; $goods_value['tree_node_id'] = -1; $goods_value['old_tree_node_id'] = -1; $goods_value['title'] = '""'; $goods_value['id_in_web'] = '""'; $goods_value['auctionType'] = '"b"'; $goods_value['category'] = 0; $goods_value['shopCategoryId'] = '""'; $goods_value['pictURL'] = '""'; $goods_value['quantity'] = 0; $goods_value['duration'] = 14; $goods_value['startDate'] = '""'; $goods_value['stuffStatus'] = 5; $goods_value['price'] = 0; $goods_value['increment'] = 0; $goods_value['prov'] = $shop_province; $goods_value['city'] = $shop_city; $goods_value['shippingOption'] = 1; $goods_value['ordinaryPostFee'] = $post_express; $goods_value['fastPostFee'] = $express; $goods_value['paymentOption'] = 5; $goods_value['haveInvoice'] = 0; $goods_value['haveGuarantee'] = 0; $goods_value['secureTradeAgree'] = 1; $goods_value['autoRepost'] = 1; $goods_value['shopWindow'] = 0; $goods_value['failed_reason'] = '""'; $goods_value['pic_size'] = 0; $goods_value['pic_filename'] = '""'; $goods_value['pic'] = '""'; $goods_value['description'] = '""'; $goods_value['story'] = '""'; $goods_value['putStore'] = 0; $goods_value['pic_width'] = 80; $goods_value['pic_height'] = 80; $goods_value['skin'] = 0; $goods_value['prop'] = '""'; $content = '"' . implode('","', $_LANG['paipai']) . "\"\n"; while ($row = $db->fetchRow($res)) { $goods_value['title'] = '"' . $row['goods_name'] . '"'; $goods_value['price'] = $row['shop_price']; $goods_value['quantity'] = $row['goods_number']; $goods_value['description'] = replace_special_char($row['goods_desc']); $goods_value['pic_filename'] = '"' . $row['goods_img'] . '"'; $content .= implode(",", $goods_value) . "\n"; /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_img']), $row['goods_img']); } } if (EC_CHARSET == 'utf-8') { $zip->add_file(ecs_iconv('UTF8', 'GB2312', $content), 'goods_list.csv'); } else { $zip->add_file($content, 'goods_list.csv'); } header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } elseif ($_REQUEST['act'] == 'act_export_paipai4') { /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $post_express = floatval($_POST['post_express']); $express = floatval($_POST['express']); if ($post_express < 0) { $post_express = 10; } if ($express < 0) { $express = 20; } $shop_province = '""'; $shop_city = '""'; if ($_CFG['shop_province'] || $_CFG['shop_city']) { $sql = "SELECT region_id, region_name FROM " . $ecs->table('region') . " WHERE region_id IN ('$_CFG[shop_province]', '$_CFG[shop_city]')"; $arr = $db->getAll($sql); if ($arr) { if (count($arr) == 1) { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; } else { $shop_city = '"' . $arr[0]['region_name'] . '"' ; } } else { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; $shop_city = '"' . $arr[1]['region_name'] . '"'; } else { $shop_province = '"' . $arr[1]['region_name'] . '"' ; $shop_city = '"' . $arr[0]['region_name'] . '"'; } } } } $sql = "SELECT g.goods_id, g.goods_name, g.shop_price, g.goods_number, g.goods_desc, g.goods_img ". " FROM " . $ecs->table('goods') . " AS g ". $where; $res = $db->query($sql); $goods_value = array(); $goods_value['id'] = -1; $goods_value['goods_name'] = '""'; $goods_value['auctionType'] = '"b"'; $goods_value['category'] = 0; $goods_value['shopCategoryId'] = '""'; $goods_value['quantity'] = 0; $goods_value['duration'] = 14; $goods_value['startDate'] = '""'; $goods_value['stuffStatus'] = 5; $goods_value['price'] = 0; $goods_value['increment'] = 0; $goods_value['prov'] = $shop_province; $goods_value['city'] = $shop_city; $goods_value['shippingOption'] = 1; $goods_value['ordinaryPostFee'] = $post_express; $goods_value['fastPostFee'] = $express; $goods_value['buyLimit'] = 0; $goods_value['paymentOption'] = 5; $goods_value['haveInvoice'] = 0; $goods_value['haveGuarantee'] = 0; $goods_value['secureTradeAgree'] = 1; $goods_value['autoRepost'] = 1; $goods_value['failed_reason'] = '""'; $goods_value['pic_filename'] = '""'; $goods_value['description'] = '""'; $goods_value['shelfOption'] = 0; $goods_value['skin'] = 0; $goods_value['attr'] = '""'; $goods_value['chengBao'] = '""'; $goods_value['shopWindow'] = 0; $content = '"' . implode('","', $_LANG['paipai4']) . "\"\n"; while ($row = $db->fetchRow($res)) { $goods_value['goods_name'] = '"' . $row['goods_name'] . '"'; $goods_value['price'] = $row['shop_price']; $goods_value['quantity'] = $row['goods_number']; $goods_value['description'] = replace_special_char($row['goods_desc']); $goods_value['pic_filename'] = '"' . $row['goods_img'] . '"'; $content .= implode(",", $goods_value) . "\n"; /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_img']), $row['goods_img']); } } if (EC_CHARSET == 'utf-8') { $zip->add_file(ecs_iconv('UTF8', 'GB2312', $content), 'goods_list.csv'); } else { $zip->add_file($content, 'goods_list.csv'); } header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } /* 从拍拍网导入数据 */ elseif ($_REQUEST['act'] == 'import_paipai') { $smarty->display('import_paipai.htm'); } /* 处理Ajax调用 */ elseif ($_REQUEST['act'] == 'get_goods_fields') { $cat_id = isset($_REQUEST['cat_id'])?intval($_REQUEST['cat_id']):0; $goods_fields = my_array_merge($_LANG['custom'], get_attributes($cat_id)); make_json_result($goods_fields); } elseif ($_REQUEST['act'] == 'act_export_custom') { /* 检查输出列 */ if (empty ($_POST['custom_goods_export'])) { sys_msg($_LANG['custom_goods_field_not_null'], 1, array(), false); } /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $sql = "SELECT g.*, b.brand_name as brandname " . " FROM " . $ecs->table('goods') . " AS g LEFT JOIN " . $ecs->table('brand') . " AS b " . "ON g.brand_id = b.brand_id" . $where; $res = $db->query($sql); $goods_fields = explode(',', $_POST['custom_goods_export']); $goods_field_name = set_goods_field_name($goods_fields, $_LANG['custom']); /* csv文件数组 */ $goods_field_value = array(); foreach ($goods_fields as $field) { if ($field == 'market_price' || $field == 'shop_price' || $field == 'integral' || $field == 'goods_weight' || $field == 'goods_number' || $field == 'warn_number' || $field == 'is_best' || $field == 'is_new' || $field == 'is_hot') { $goods_field_value[$field] = 0; } elseif ($field == 'is_on_sale' || $field == 'is_alone_sale' || $field == 'is_real') { $goods_field_value[$field] = 1; } else { $goods_field_value[$field] = '""'; } } $content = '"' . implode('","', $goods_field_name) . "\"\n"; while ($row = $db->fetchRow($res)) { $goods_value = $goods_field_value; isset($goods_value['goods_name']) && ($goods_value['goods_name'] = '"' . $row['goods_name'] . '"'); isset($goods_value['goods_sn']) && ($goods_value['goods_sn'] = '"' . $row['goods_sn'] . '"'); isset($goods_value['brand_name']) && ($goods_value['brand_name'] = $row['brandname']); isset($goods_value['market_price']) && ($goods_value['market_price'] = $row['market_price']); isset($goods_value['shop_price']) && ($goods_value['shop_price'] = $row['shop_price']); isset($goods_value['integral']) && ($goods_value['integral'] = $row['integral']); isset($goods_value['original_img']) && ($goods_value['original_img'] = '"' . $row['original_img'] . '"'); isset($goods_value['keywords']) && ($goods_value['keywords'] = '"' . $row['keywords'] . '"'); isset($goods_value['goods_brief']) && ($goods_value['goods_brief'] = '"' . replace_special_char($row['goods_brief']) . '"'); isset($goods_value['goods_desc']) && ($goods_value['goods_desc'] = '"' . replace_special_char($row['goods_desc']) . '"'); isset($goods_value['goods_weight']) && ($goods_value['goods_weight'] = $row['goods_weight']); isset($goods_value['goods_number']) && ($goods_value['goods_number'] = $row['goods_number']); isset($goods_value['warn_number']) && ($goods_value['warn_number'] = $row['warn_number']); isset($goods_value['is_best']) && ($goods_value['is_best'] = $row['is_best']); isset($goods_value['is_new']) && ($goods_value['is_new'] = $row['is_new']); isset($goods_value['is_hot']) && ($goods_value['is_hot'] = $row['is_hot']); isset($goods_value['is_on_sale']) && ($goods_value['is_on_sale'] = $row['is_on_sale']); isset($goods_value['is_alone_sale']) && ($goods_value['is_alone_sale'] = $row['is_alone_sale']); isset($goods_value['is_real']) && ($goods_value['is_real'] = $row['is_real']); $sql = "SELECT `attr_id`, `attr_value` FROM " . $ecs->table('goods_attr') . " WHERE `goods_id` = '" . $row['goods_id'] . "'"; $query = $db->query($sql); while ($attr = $db->fetchRow($query)) { if (in_array($attr['attr_id'], $goods_fields)) { $goods_value[$attr['attr_id']] = '"' . $attr['attr_value'] . '"'; } } $content .= implode(",", $goods_value) . "\n"; /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH . $row['goods_img']), $row['goods_img']); } } $charset = empty($_POST['charset_custom']) ? 'UTF8' : trim($_POST['charset_custom']); $zip->add_file(ecs_iconv(EC_CHARSET, $charset, $content), 'goods_list.csv'); header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } elseif ($_REQUEST['act'] == 'get_goods_list') { include_once(ROOT_PATH . 'includes/cls_json.php'); $json = new JSON; $filters = $json->decode($_REQUEST['JSON']); $arr = get_goods_list($filters); $opt = array(); foreach ($arr AS $key => $val) { $opt[] = array('goods_id' => $val['goods_id'], 'goods_name' => $val['goods_name'] ); } make_json_result($opt); } elseif ($_REQUEST['act'] == 'act_export_taobao V4.6') { /* 检查权限 */ admin_priv('goods_export'); include_once('includes/cls_phpzip.php'); $zip = new PHPZip; $where = get_export_where_sql($_POST); $goods_class = intval($_POST['goods_class']); $post_express = floatval($_POST['post_express']); $express = floatval($_POST['express']); $ems = floatval($_POST['ems']); $shop_province = '""'; $shop_city = '""'; if ($_CFG['shop_province'] || $_CFG['shop_city']) { $sql = "SELECT region_id, region_name FROM " . $ecs->table('region') . " WHERE region_id IN ('$_CFG[shop_province]', '$_CFG[shop_city]')"; $arr = $db->getAll($sql); if ($arr) { if (count($arr) == 1) { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; } else { $shop_city = '"' . $arr[0]['region_name'] . '"' ; } } else { if ($arr[0]['region_id'] == $_CFG['shop_province']) { $shop_province = '"' . $arr[0]['region_name'] . '"' ; $shop_city = '"' . $arr[1]['region_name'] . '"'; } else { $shop_province = '"' . $arr[1]['region_name'] . '"' ; $shop_city = '"' . $arr[0]['region_name'] . '"'; } } } } $sql = "SELECT g.goods_id, g.goods_name, g.shop_price, g.goods_number, g.goods_desc, g.goods_img ". " FROM " . $ecs->table('goods') . " AS g ". $where; $res = $db->query($sql); /* csv文件数组 */ $goods_value = array('goods_name'=>'', 'goods_class'=>$goods_class, 'shop_class'=>0, 'new_level'=>0, 'province'=>$shop_province, 'city'=>$shop_city, 'sell_type'=>'"b"', 'shop_price'=>0, 'add_price'=>0, 'goods_number'=>0, 'die_day'=>14, 'load_type'=>1, 'post_express'=>$post_express, 'ems'=>$ems, 'express'=>$express, 'pay_type'=>'', 'allow_alipay'=>'', 'invoice'=>0, 'repair'=>0, 'resend'=>1, 'is_store'=>0, 'window'=>0, 'add_time'=>'"1980-1-1 0:00:00"', 'story'=>'', 'goods_desc'=>'', 'goods_img'=>'', 'goods_attr'=>'', 'group_buy'=>'', 'group_buy_num'=>'', 'template'=>0, 'discount'=>0, 'modify_time'=>'"2011-5-1 0:00:00"', 'upload_status'=>100, 'img_status'=>1,'img_status'=>'','rebate_proportion'=>0,'new_goods_img'=>'','video'=>'','marketing_property_mix'=>'','user_input_ID_numbers'=>'','input_user_name_value'=>'','sellers_code'=>'','another_of_marketing_property'=>'','charge_type'=>'0','treasure_number'=>'','ID_number'=>'',); $content = implode("\t", $_LANG['taobao46']) . "\n"; while ($row = $db->fetchRow($res)) { /* 压缩图片 */ if (!empty($row['goods_img']) && is_file(ROOT_PATH . $row['goods_img'])) { $row['new_goods_img']=preg_replace("/(^images\/)+(.*)(.gif|.jpg|.jpeg|.png)$/", "\${2}.tbi", $row['goods_img']); @copy(ROOT_PATH .$row['goods_img'],ROOT_PATH ."images\/".$row['new_goods_img']); if(is_file(ROOT_PATH ."images\/". $row['new_goods_img'])) { $zip->add_file(file_get_contents(ROOT_PATH ."images\/". $row['new_goods_img']), $row['new_goods_img']); unlink(ROOT_PATH ."images\/".$row['new_goods_img']); } } $goods_value['goods_name'] = '"' . $row['goods_name'] . '"'; $goods_value['shop_price'] = $row['shop_price']; $goods_value['goods_number'] = $row['goods_number']; $goods_value['goods_desc'] = replace_special_char($row['goods_desc']); if(!empty($row['new_goods_img'])) { $row['new_goods_img']=str_ireplace('/','\\',$row['new_goods_img'],$row['new_goods_img']); $row['new_goods_img']=str_ireplace('.tbi','',$row['new_goods_img'],$row['new_goods_img']); $goods_value['new_goods_img'] = '"' . $row['new_goods_img'] . ':0:0:|;'.'"'; } $content .= implode("\t", $goods_value) . "\n"; } if (EC_CHARSET != 'utf-8') { $content = ecs_iconv(EC_CHARSET, 'utf-8', $content); } $zip->add_file("\xFF\xFE" . utf82u2($content), 'goods_list.csv'); header("Content-Disposition: attachment; filename=goods_list.zip"); header("Content-Type: application/unknown"); die($zip->file()); } /** * * * @access public * @param * * @return void */ function utf82u2($str) { $len = strlen($str); $start = 0; $result = ''; if ($len == 0) { return $result; } while ($start < $len) { $num = ord($str{$start}); if ($num < 127) { $result .= chr($num) . chr($num >> 8); $start += 1; } else { if ($num < 192) { /* 无效字节 */ $start ++; } elseif ($num < 224) { if ($start + 1 < $len) { $num = (ord($str{$start}) & 0x3f) << 6; $num += ord($str{$start+1}) & 0x3f; $result .= chr($num & 0xff) . chr($num >> 8) ; } $start += 2; } elseif ($num < 240) { if ($start + 2 < $len) { $num = (ord($str{$start}) & 0x1f) << 12; $num += (ord($str{$start+1}) & 0x3f) << 6; $num += ord($str{$start+2}) & 0x3f; $result .= chr($num & 0xff) . chr($num >> 8) ; } $start += 3; } elseif ($num < 248) { if ($start + 3 < $len) { $num = (ord($str{$start}) & 0x0f) << 18; $num += (ord($str{$start+1}) & 0x3f) << 12; $num += (ord($str{$start+2}) & 0x3f) << 6; $num += ord($str{$start+3}) & 0x3f; $result .= chr($num & 0xff) . chr($num >> 8) . chr($num >>16); } $start += 4; } elseif ($num < 252) { if ($start + 4 < $len) { /* 不做处理 */ } $start += 5; } else { if ($start + 5 < $len) { /* 不做处理 */ } $start += 6; } } } return $result; } /** * * * @access public * @param * * @return string */ function image_path_format($content) { $prefix = 'http://' . $_SERVER['SERVER_NAME']; $pattern = '/(background|src)=[\'|\"]((?!http:\/\/).*?)[\'|\"]/i'; $replace = "$1='" . $prefix . "$2'"; return preg_replace($pattern, $replace, $content); } /** * 获取商品类型属性 * * @param int $cat_id 商品类型ID * * @return array */ function get_attributes($cat_id = 0) { $sql = "SELECT `attr_id`, `cat_id`, `attr_name` FROM " . $GLOBALS['ecs']->table('attribute') . " "; if (!empty($cat_id)) { $cat_id = intval($cat_id); $sql .= " WHERE `cat_id` = '{$cat_id}' "; } $sql .= " ORDER BY `cat_id` ASC, `attr_id` ASC "; $attributes = array(); $query = $GLOBALS['db']->query($sql); while ($row = $GLOBALS['db']->fetchRow($query)) { $attributes[$row['attr_id']] = $row['attr_name']; } return $attributes; } /** * 设置导出商品字段名 * * @param array $array 字段数组 * @param array $lang 字段名 * * @return array */ function set_goods_field_name($array, $lang) { $tmp_fields = $array; foreach ($array as $key => $value) { if (isset($lang[$value])) { $tmp_fields[$key] = $lang[$value]; } else { $tmp_fields[$key] = $GLOBALS['db']->getOne("SELECT `attr_name` FROM " . $GLOBALS['ecs']->table('attribute') . " WHERE `attr_id` = '" . intval($value) . "'"); } } return $tmp_fields; } /** * 数组合并 * * @param array $array1 数组1 * @param array $array2 数组2 * * @return array */ function my_array_merge($array1, $array2) { $new_array = $array1; foreach ($array2 as $key => $val) { $new_array[$key] = $val; } return $new_array; } /** * 生成商品导出过滤条件 * * @param array $filter 过滤条件数组 * * @return string */ function get_export_where_sql($filter) { $where = ''; if (!empty($filter['goods_ids'])) { $goods_ids = explode(',', $filter['goods_ids']); if (is_array($goods_ids) && !empty($goods_ids)) { $goods_ids = array_unique($goods_ids); $goods_ids = "'" . implode("','", $goods_ids) . "'"; } else { $goods_ids = "'0'"; } $where = " WHERE g.is_delete = 0 AND g.goods_id IN (" . $goods_ids . ") "; } else { $_filter = new StdClass(); $_filter->cat_id = $filter['cat_id']; $_filter->brand_id = $filter['brand_id']; $_filter->keyword = $filter['keyword']; $where = get_where_sql($_filter); } return $where; } /** * 替换影响csv文件的字符 * * @param $str string 处理字符串 */ function replace_special_char($str, $replace = true) { $str = str_replace("\r\n", "", image_path_format($str)); $str = str_replace("\t", " ", $str); $str = str_replace("\n", "", $str); if ($replace == true) { $str = '"' . str_replace('"', '""', $str) . '"'; } return $str; } ?>