当前位置: 首页>>代码示例>>PHP>>正文


PHP ObHeader函数代码示例

本文整理汇总了PHP中ObHeader函数的典型用法代码示例。如果您正苦于以下问题:PHP ObHeader函数的具体用法?PHP ObHeader怎么用?PHP ObHeader使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了ObHeader函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _init

 function _init()
 {
     if ($this->action == "modify" && strtolower($this->pwService['REQUEST_METHOD']) == "post") {
         $this->_modify();
         ObHeader($this->jump);
     }
     if ($this->action == "delete" && strtolower($this->pwService['REQUEST_METHOD']) == "get") {
         $this->_delete();
         ObHeader($this->jump);
     }
 }
开发者ID:adi00,项目名称:wumaproject,代码行数:11,代码来源:cgman.php

示例2: pwSqlSingle

        }
        $db->update("INSERT INTO pw_topiccate" . " SET " . pwSqlSingle(array('name' => $name, 'ifable' => $ifable, 'vieworder' => $vieworder)));
        $cateid = $db->insert_id();
        $db->update("INSERT INTO pw_topicmodel" . " SET " . pwSqlSingle(array('name' => getLangInfo('other', 'pc_defaultmodel'), 'cateid' => $cateid, 'vieworder' => 0, 'ifable' => 1)));
        $modelid = $db->insert_id();
        $charset = $db->charset;
        $createsql = "CREATE TABLE " . $PW . "topicvalue" . $modelid . " (tid mediumint(8) unsigned NOT NULL,fid SMALLINT(6) UNSIGNED NOT NULL ,ifrecycle TINYINT(1) NOT NULL default 0,PRIMARY KEY (tid))";
        if ($db->server_info() >= '4.1') {
            $extra = " ENGINE=MyISAM" . ($charset ? " DEFAULT CHARSET={$charset}" : '');
        } else {
            $extra = " TYPE=MyISAM";
        }
        $createsql = $createsql . $extra;
        $db->query($createsql);
        updatecache_topic();
        ObHeader("{$basename}&action=editmodel&cateid={$cateid}");
    }
} elseif ($action == 'edittopic') {
    if (empty($_POST['step'])) {
        $selectmodel = '';
        extract($db->get_one("SELECT cateid,name,ifable,vieworder,ifdel FROM pw_topiccate WHERE cateid=" . pwEscape($cateid)));
        $query = $db->query("SELECT name,modelid,cateid,ifable FROM pw_topicmodel WHERE cateid=" . pwEscape($cateid));
        while ($rt = $db->fetch_array($query)) {
            $checked = '';
            if ($rt['ifable']) {
                $checked = 'checked';
            }
            $selectmodel .= "<span class=\"mr15 w fl\"><input style=\"vertical-align:middle;\" type=\"checkbox\" class=\"input\" name=\"modelid[{$rt['modelid']}]\" value=\"{$rt['ifable']}\" {$checked}>{$rt['name']}</span>";
        }
        ifcheck($ifable, 'ifable');
        include PrintEot('topiccate');
开发者ID:adi00,项目名称:wumaproject,代码行数:31,代码来源:topiccate.php

示例3: Showmsg

         Showmsg('undefined_action');
     }
     //* include_once pwCache::getPath(D_P.'data/bbscache/ol_config.php');
     pwCache::getData(D_P . 'data/bbscache/ol_config.php');
     if (!$ol_onlinepay) {
         Showmsg($ol_whycolse);
     }
     $grouptitle = $rt['grouptitle'];
     $order_no = '1' . str_pad($winduid, 10, "0", STR_PAD_LEFT) . get_date($timestamp, 'YmdHis') . num_rand(5);
     $db->update("INSERT INTO pw_clientorder SET " . S::sqlSingle(array('order_no' => $order_no, 'type' => 3, 'uid' => $winduid, 'paycredit' => $gid, 'price' => $rt['sright']['rmbprice'], 'number' => $days, 'date' => $timestamp, 'state' => 0, 'extra_1' => $options)));
     if (!$ol_payto) {
         Showmsg('olpay_alipayerror');
     }
     require_once R_P . 'require/onlinepay.php';
     $olpay = new OnlinePay($ol_payto);
     ObHeader($olpay->alipayurl($order_no, round($rt['sright']['rmbprice'] * $days, 2), 3));
 }
 if (md5($pwpwd) != $mb['password']) {
     Showmsg('password_error');
 }
 if ($rt['sright']['sellprice'] <= 0) {
     Showmsg('undefined_action');
 }
 $needcur = $days * $rt['sright']['sellprice'];
 $cur = $credit->get($winduid, $rt['sright']['selltype']);
 if ($cur === false) {
     Showmsg('numerics_checkfailed');
 }
 if ($cur < $needcur) {
     Showmsg('noenough_currency');
 }
开发者ID:sherlockhouse,项目名称:aliyun,代码行数:31,代码来源:buy.php

示例4: unserialize

 require_once R_P . 'require/credit.php';
 $o_photos_creditset = unserialize($o_photos_creditset);
 $creditset = getCreditset($o_photos_creditset['Deletephoto'], false);
 $creditset = array_diff($creditset, array(0));
 foreach ($creditset as $key => $value) {
     $moneyName = $credit->cType[$key];
     $unit = $credit->cUnit[$key];
     $creditPops .= $value . $unit . $moneyName . ",";
 }
 $deletePhotoCredit = $creditset ? '删除照片会扣除积分:' . $creditPops . '继续吗?' : '是否确认删除?';
 list($photo, $nearphoto, $prePid, $nextPid) = $result;
 $isown = $photo['ownerid'] == $winduid ? '1' : '0';
 if (!$isown) {
     //转跳处理
     $url = $db_bbsurl . "/apps.php?q=photos&a=view&pid=" . $pid . "&uid=" . $photo['ownerid'];
     ObHeader($url);
 }
 $u = $photo['ownerid'];
 $username = $photo['owner'];
 $aid = $photo['aid'];
 $page = (int) S::getGP('page');
 $page < 1 && ($page = 1);
 $url = $basename . 'a=view&pid=' . $pid;
 $url .= $ifriend == 1 ? '&ifriend=' . $ifriend . '&' : '&';
 require_once R_P . 'require/bbscode.php';
 list($commentdb, $subcommentdb, $pages) = getCommentDbByTypeid('photo', $pid, $page, $url);
 $comment_type = 'photo';
 $comment_typeid = $pid;
 $ouserdataService = L::loadClass('Ouserdata', 'sns');
 /* @var $ouserdataService PW_Ouserdata */
 $myOuserData = $ouserdataService->get($photo['ownerid']);
开发者ID:jechiy,项目名称:PHPWind,代码行数:31,代码来源:my.php

示例5: Showmsg

    $memberdb['ifpay'] != 1 && Showmsg('act_refund_error');
    //支付宝支付成功才能退款
    if (!$memberdb['refundcost'] || !preg_match("/^(([1-9]\\d*)|0)(\\.\\d{0,2})?\$/", $memberdb['refundcost']) || $memberdb['refundcost'] > number_format($memberdb['totalcash'] - $tempcost, 2, '.', '')) {
        //费用错误、超出剩余费用
        Showmsg('act_refund_cash_error');
    }
    $refundcost = number_format($memberdb['refundcost'], 2, '.', '');
    //退款金额
    $defaultValueTableName = getActivityValueTableNameByActmid();
    $defaultValue = $db->get_one("SELECT user_id,paymethod,endtime FROM {$defaultValueTableName} WHERE tid=" . S::sqlEscape($tid));
    $defaultValue['endtime'] + 30 * 86400 < $timestamp && Showmsg('act_endtime_toolong');
    //结束时间后一个月,>0 则可以操作,< 0无法操作
    $defaultValue['paymethod'] != 1 && Showmsg('act_toalipay_paymethod');
    //支付宝支付才能退款
    $param = array('out_trade_no' => $memberdb['out_trade_no'], 'operator_id' => $defaultValue['user_id'], 'refund_fee' => $refundcost, 'notify_url' => "{$db_bbsurl}/act_alipay_receive.php", 'return_url' => "{$db_bbsurl}/read.php?tid={$tid}");
    ObHeader($AlipayInterface->alipayurl($param));
}
/**
 * 生成随机码
 * @param int $len 位数
 * @param string 随机串
 */
function generatestr($len)
{
    mt_srand((double) microtime() * 1000000);
    $keychars = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ";
    $maxlen = strlen($keychars) - 1;
    $str = '';
    for ($i = 0; $i < $len; $i++) {
        $str .= $keychars[mt_rand(0, $maxlen)];
    }
开发者ID:sherlockhouse,项目名称:aliyun,代码行数:31,代码来源:act_alipay_push.php

示例6: get_date

                /*删除静态*/
                $htmurl = $db_htmdir . '/' . $dfid . '/' . get_date('ym', $threaddb['postdate']) . '/' . $dtid . '.html';
                if (file_exists(R_P . $htmurl)) {
                    P_unlink(R_P . $htmurl);
                }
            }
            //* P_unlink(D_P.'data/bbscache/c_cache.php');
            pwCache::deleteData(D_P . 'data/bbscache/c_cache.php');
            adminmsg('operate_success', "{$admin_file}?adminjob=superdel&admintype=article&action={$action}&fid={$_POST['fid']}&tid={$_POST['tid']}&pstart={$pstart}&pend={$pend}&author=" . rawurlencode($author) . "&keyword=" . rawurlencode($keyword) . "&userip={$userip}&tcounts={$tcounts}&counts={$counts}&nums={$nums}&ptable={$ptable}&page={$page}");
        }
    } elseif ($action == 'view') {
        S::gp(array('tid', 'pid'));
        $pw_posts = GetPtable('N', $tid);
        $rt = $db->get_one("SELECT COUNT(*) AS sum FROM {$pw_posts} WHERE tid=" . S::sqlEscape($tid) . 'AND pid<' . S::sqlEscape($pid));
        $page = ceil(($rt['sum'] + 1.5) / $db_readperpage);
        ObHeader("read.php?tid={$tid}&page={$page}#{$pid}");
    }
} elseif ($admintype == 'message') {
    $basename = "{$admin_file}?adminjob=superdel&admintype=message";
    $messageServer = L::loadClass('message', 'message');
    if (empty($action)) {
        include PrintEot('superdel');
        exit;
    } elseif ($action == 'del') {
        S::gp(array('stime', 'etime', 'fromuser', 'keyword', 'lines', 'direct', 'page'));
        if (!empty($fromuser)) {
            $userService = L::loadClass('UserService', 'user');
            /* @var $userService PW_UserService */
            $userdb = $userService->getByUserName($fromuser);
            empty($userdb) && adminmsg('输入的用户不存在');
        }
开发者ID:sherlockhouse,项目名称:aliyun,代码行数:31,代码来源:superdel.php

示例7: is_array

                $attimages[$rt['attachurl']] = is_array($a_url) ? $a_url[0] : $a_url;
            }
        }
        $attimages = serialize($attimages);
        $share['topic']['abstract'] = $replydb['content'];
        $share['topic']['imgs'] = $attimages;
    }
}
PostCheck(1, $o_share_gdcheck, $o_share_qcheck);
/**
* 禁止受限制用户发言
*/
banUser();
$ifhidden != 0 && $ifhidden != 1 && ($ifhidden = 0);
if (!$link) {
    ObHeader('mode.php?m=$m&q=share');
}
!preg_match("/^https?\\:\\/\\/.{4,255}\$/i", $link) && Showmsg('mode_share_link_error');
if (strlen($descrip) > 300) {
    Showmsg('mode_share_descrip_toolang');
}
require_once R_P . 'require/postfunc.php';
require_once R_P . 'require/bbscode.php';
$wordsfb = L::loadClass('FilterUtil');
if (($banword = $wordsfb->comprise($descrip)) !== false) {
    Showmsg('post_wordsfb');
}
$share['link'] = $link;
$share['descrip'] = $descrip;
$parselink = parse_url($link);
if (!$type) {
开发者ID:adi00,项目名称:wumaproject,代码行数:31,代码来源:m_sharelink.php

示例8: InitGP

    }
    InitGP(array("stopic_title", "banner_url", "nav_set", "layout_set", "is_new_bg", "bg_id", "seo_keyword", "seo_desc"));
    $title = trim($stopic_title);
    if ("" == $title) {
        Showmsg("对不起,请填写标题", "javascript:history.back();");
    }
    if ($is_new_bg) {
        $bg_id = 0;
    }
    if ($is_new_bg && count($_FILES) && $_FILES["background"]["name"] && $_FILES["background"]["size"]) {
        $new_bg_id = $stopic_service->uploadPicture($_FILES, $stopic_data['category_id'], $admin_name);
        !$new_bg_id && Showmsg("对不起,背景图片增加失败", $stopic_admin_url);
        $bg_id = $new_bg_id;
    }
    $stopic_service->updateSTopicById($stopic_id, array("title" => $title, "banner_url" => $banner_url, "nav_config" => stopic_filter_navconfig($nav_set), "layout_config" => $layout_set, "bg_id" => $bg_id, "seo_keyword" => $seo_keyword, "seo_desc" => $seo_desc));
    ObHeader($basename . '&job=editstopic&stopic_id=' . $stopic_id);
} else {
    Showmsg("对不起,参数错误");
}
function stopic_filter_navconfig($nav_set)
{
    $nav_config = array();
    if (isset($nav_set['text']) && is_array($nav_set['text']) && count($nav_set['text'])) {
        foreach ($nav_set['text'] as $k => $v) {
            if ($v && $nav_set['url'][$k]) {
                $nav_config[] = array('text' => $v, 'url' => $nav_set['url'][$k]);
            }
        }
    } else {
        return "";
    }
开发者ID:adi00,项目名称:wumaproject,代码行数:31,代码来源:draw.php

示例9: wap_msg

     } else {
         !$attach['ctype'] && ($attach['ctype'] = 'rvrc');
         $usercredit = $credit->get($winduid, $attach['ctype']);
         if ($usercredit < $attach['needrvrc']) {
             $needrvrc = $attach['needrvrc'];
             $creditName = $credit->cType[$attach['ctype']];
             wap_msg($downloadmoney > 0 && $uploadcredit == $attach['ctype'] ? 'job_attach_rvrc_download' : 'job_attach_rvrc');
         }
     }
 }
 if (isset($credit) && $credit->setUser) {
     $credit->runsql();
 }
 $pw_attachs->increaseField($aid, 'hits');
 if ($db_attachhide && $attach['size'] > $db_attachhide && $attach['type'] == 'zip' && !defined('FX')) {
     ObHeader($fgeturl[0]);
 } elseif ($fgeturl[1] == 'Local') {
     $filename = "{$attachdir}/" . $attach['attachurl'];
     $filesize = filesize($filename);
 }
 $ctype = '';
 switch ($fileext) {
     case "pdf":
         $ctype = "application/pdf";
         break;
     case "rar":
     case "zip":
         $ctype = "application/zip";
         break;
     case "doc":
         $ctype = "application/msword";
开发者ID:jechiy,项目名称:PHPWind,代码行数:31,代码来源:job.php

示例10: exit

<?php

!function_exists('adminmsg') && exit('Forbidden');
$basename = "{$admin_file}?adminjob=adminrecord";
$bbscrecordfile = D_P . "data/bbscache/adminrecord.php";
$db_adminrecord == 0 && adminmsg('adminrecord_open');
if ($admintype == 'add') {
    InitGP(array('content', 'jumpurl'));
    if ($content) {
        !file_exists($bbscrecordfile) && writeover($bbscrecordfile, "<?php die;?>\n");
        $new_crecord = '|' . str_replace('|', '&#124;', Char_cv($admin_name)) . '|' . "|{$onlineip}|{$timestamp}|" . '|' . str_replace('|', '&#124;', $content) . "\n";
        writeover($bbscrecordfile, $new_crecord, "ab");
    }
    ObHeader($jumpurl);
} elseif ($admintype == 'del') {
    PostCheck($verify);
    if ($admin_gid == 3) {
        $recorddb = readlog($bbscrecordfile);
        $recorddb = array_reverse($recorddb);
        $count = count($recorddb);
        if ($count > 100) {
            $output = array_slice($recorddb, 0, 100);
            $output = array_reverse($output);
            $output = "<?php die;?>\r\n" . implode("", $output);
            writeover($bbscrecordfile, $output);
            adminmsg('adminrecord_del');
        } else {
            adminmsg('adminrecord_min');
        }
    } else {
        adminmsg('record_aminonly');
开发者ID:adi00,项目名称:wumaproject,代码行数:31,代码来源:adminrecord.php

示例11: refreshto

    refreshto('profile.php?action=weibobind', '创建密码成功!', 2, true);
} elseif ($t == 'bindsuccess') {
    extract(L::style('', $skinco));
    $msg_info = '绑定帐号成功(窗口将自动关闭)';
    require_once uTemplate::printEot('profile_privacy_bindsuccess');
    pwOutPut();
} elseif ($t == 'callback') {
    $userBindService = L::loadClass('WeiboUserBindService', 'sns/weibotoplatform/service');
    /* @var $userBindService PW_WeiboUserBindService */
    $params = array_merge($_GET, $_POST);
    unset($params['action'], $params['t']);
    $isSuccess = $userBindService->callback($winduid, $params);
    if (true !== $isSuccess) {
        Showmsg($isSuccess ? $isSuccess : '绑定失败,请重试');
    }
    ObHeader('profile.php?action=weibobind&t=bindsuccess');
}
function ifchecked($out, $var)
{
    $GLOBALS[$out] = $var ? ' checked' : '';
}
function weiboResetUserPassword($userId, $password, $repeatPassword)
{
    global $db_ckpath, $db_ckdomain;
    if ('' == $password || '' == $repeatPassword) {
        Showmsg('创建密码不能为空');
    }
    $rg_config = L::reg();
    list($rg_regminpwd, $rg_regmaxpwd) = explode("\t", $rg_config['rg_pwdlen']);
    $register = L::loadClass('Register', 'user');
    $register->checkPwd($password, $repeatPassword);
开发者ID:jechiy,项目名称:PHPWind,代码行数:31,代码来源:weibobind.php

示例12: PrintEot

    }
    $joblists = $jobService->getQuitJobs($winduid);
    $jobs = $jobService->buildLists($joblists, $action, $winduid, $groupid);
    $current[3] = "current";
    include PrintEot('jobcenter');
    footer();
} elseif ($action == "start") {
    //获取任务开始链接
    list($bool, $message, $link) = $jobService->jobStartController($winduid, $id);
    if (!$bool) {
        refreshto("jobcenter.php?action=applied", $message);
    }
    if ($link == "") {
        refreshto("jobcenter.php?action=applied", "任务开始");
    } else {
        ObHeader($link);
    }
} elseif ($action == "gain") {
    if ($step == 2) {
        $id = intval($id);
        list($bool, $message) = $jobService->jobGainController($winduid, $id);
        if ($bool) {
            $jobService->jobAutoController($winduid, $groupid);
            /*自动申请*/
            $appliedHTML = $jobService->buildApplieds($winduid, $groupid);
            ajaxResponse($message, true, $appliedHTML);
        } else {
            ajaxResponse($message, false);
        }
    }
} else {
开发者ID:adi00,项目名称:wumaproject,代码行数:31,代码来源:jobcenter.php

示例13: exit

<?php

!function_exists('readover') && exit('Forbidden');
//* include_once pwCache::getPath(D_P.'data/bbscache/bg_config.php');
pwCache::getData(D_P . 'data/bbscache/bg_config.php');
$groupid == 'guest' && Showmsg('not_login');
!$bg_ifopen && Showmsg('blog_close');
if (!$action) {
    include PrintHack('index');
    footer();
} elseif ($action == 'activation') {
    ObHeader("{$bg_blogurl}/login.php");
}
开发者ID:sherlockhouse,项目名称:aliyun,代码行数:13,代码来源:index.php

示例14: refreshto

    $db->update("UPDATE pw_trade SET salenum=salenum+" . $order['quantity'] . " WHERE tid=" . S::sqlEscape($order['tid']));
    //$db->update("UPDATE pw_trade SET salenum=salenum+1 WHERE tid=".S::sqlEscape($order['tid']));
    refreshto("apps.php?q=article&a=goods", 'operate_success');
} elseif ($action == 'pcalipay') {
    S::gp(array('tid', 'pcmid', 'pcid'), GP, 2);
    $pcvaluetable = GetPcatetable($pcid);
    $order = $db->get_one("SELECT pv.price,pv.deposit,pm.username,pm.nums,pm.phone,pm.mobile,pm.address,pm.ifpay,pm.totalcash,t.author,t.authorid,t.subject FROM pw_pcmember pm LEFT JOIN {$pcvaluetable} pv ON pm.tid=pv.tid LEFT JOIN pw_threads t ON pv.tid=t.tid WHERE pm.tid=" . S::sqlEscape($tid) . " AND pm.pcmid=" . S::sqlEscape($pcmid) . " AND pm.uid=" . S::sqlEscape($winduid));
    $order['zip'] = '100000';
    $order['tradeinfo'] = $db->get_value("SELECT tradeinfo FROM pw_memberinfo WHERE uid=" . S::sqlEscape($order['authorid']));
    if (empty($order)) {
        Showmsg('data_error');
    }
    if (!is_array($trade = unserialize($order['tradeinfo']))) {
        $trade = array();
    }
    if ($order['ifpay'] > 0) {
        Showmsg('pcalipay_haspay');
    }
    if (empty($trade['alipay'])) {
        Showmsg('onlinepay_alipay');
    }
    //* include_once pwCache::getPath(D_P.'data/bbscache/ol_config.php');
    pwCache::getData(D_P . 'data/bbscache/ol_config.php');
    require_once R_P . 'require/onlinepay.php';
    $olpay = new OnlinePay($trade['alipay']);
    $price = !ceil($order['deposit']) ? $order['price'] : $order['deposit'];
    $price = number_format($price, 2, '.', '');
    $order_no = $pcmid . '_' . str_pad($winduid, 10, "0", STR_PAD_LEFT) . get_date($timestamp, 'YmdHis') . num_rand(5);
    $param = array('notify_url' => "{$db_bbsurl}/alipay.php?action=pcalipay", 'return_url' => "{$db_bbsurl}/alipay.php?action=pcalipay", 'subject' => $order['subject'], 'out_trade_no' => $order_no, 'price' => $price, 'quantity' => $order['nums'], 'payment_type' => 1, 'logistics_type' => 'EXPRESS', 'logistics_fee' => '0.00', 'logistics_payment' => 'SELLER_PAY', 'receive_name' => $order['username'], 'receive_address' => $order['address'], 'receive_zip' => $order['zip'], 'receive_phone' => $order['mobile']);
    ObHeader($olpay->alipay2url($param));
}
开发者ID:jechiy,项目名称:PHPWind,代码行数:31,代码来源:trade.php

示例15: ObHeader

$userInfo = $weiboUserBindService->getBindInfo($winduid, $type);
if (empty($userInfo)) {
    // 绑定引导
    $userBindList = $weiboUserBindService->getBindList($winduid);
    $bindUrl = $userBindList[$type]['bindUrl'];
    $action = 'bind';
} else {
    $weiboName = $userInfo['info']['name'];
    if ($action == 'share' && !empty($shareContent)) {
        // 分享
        $weiboSyncerService = L::loadClass('WeiboSyncer', 'sns/weibotoplatform');
        $result = $weiboSyncerService->shareContent($winduid, $shareContent, $photo);
        // 跳到关注官方帐号
        if ($result) {
            if (!$weiboUserBindService->isFollow($type, $winduid)) {
                ObHeader($db_bbsurl . "connexion/share.php?type={$type}&action=isfollow");
            }
            $action = 'sharesuccess';
        } else {
            $action = 'sharefail';
        }
    } elseif ($action == 'isfollow') {
        // 有官方微博帐号则引导关注 没有则提示分享成功
        $weiboSiteBindInfoService = L::loadClass('WeiboSiteBindInfoService', 'sns/weibotoplatform/service');
        $weiboAccount = $weiboSiteBindInfoService->getOfficalAccount($type);
        if (!$weiboAccount) {
            $action = 'sharesuccess';
        }
    } elseif ($action == 'follow') {
        // 关注
        $weiboSiteBindInfoService = L::loadClass('WeiboSiteBindInfoService', 'sns/weibotoplatform/service');
开发者ID:jechiy,项目名称:PHPWind,代码行数:31,代码来源:share.php


注:本文中的ObHeader函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。